以下の内容はhttps://ozaki25.hatenadiary.jp/entry/2025/05/24/203505より取得しました。


「TSKaigi 2025(Day2)」に参加してきました

TypeScriptネイティブ移植観察レポート TSKaigi 2025

berlysiaさん
https://speakerdeck.com/berlysia/typescript-native-porting-observation-tskaigi-2025

  • tsのgo実装
    • v7からgo実装になる
    • v5とv6までは今までの
  • どこが早くなるか
    • TypeScriptCompilerの部分
    • JSでの実装の限界
      • 大規模だとOOMが起きたり
    • 関数の1対1レベルのgoへの移植
  • 10倍の内訳
    • ネイティブ化で3倍
      • JSはオブジェクトごとにヒープを割り当てるのでGCが多い
        • goだとまとめて確保するのでGC激減
      • JSはUTF16でgoはUTF8なので半分になる
    • 並列化で3倍
      • Goroutineで一斉に処理できる
      • 型チェッカーを4分割して並列処理するようにした
  • 互換性
    • 99.99%を目指している
  • 開発スピードが速い
    • 構文変換ツール
    • goにない要素もあって全てを表現できないので修正は必要

TypeScript Language Service Plugin で CSS Modules の開発体験を改善する

mizdraさん
https://speakerdeck.com/mizdra/typescript-language-service-plugin-de-css-modules-nokai-fa-ti-yan-wogai-shan-suru

  • CSS Modules
    • CSSをローカルスコープ化する仕組み
    • jsファイルでcssファイルをimportして使う
    • ビルドするとランダムな文字列がつけられてスコープ化される
    • コードジャンプなどエディタでの補助がきかないのが欠点
  • Language Server Protocol(LSP)
    • 各言語ごとにLanguage Serverが実装されている
    • エディタはLanguage Serverを通してユーザに情報を提供している
    • 仕様に従ってればどんなエディタでも動く
    • tsとcssはそれぞれ別のLanguage Server
  • React CSS modules
    • VSCodeの拡張
    • CSS Modulesの欠点が解消される
    • ただしVSCodeでしか使えない
  • CSS Modules Kit
    • LSPをサポートするエディタで動く
    • codegen
      • modules.css.d.tsを生成
    • ts-plugin
      • tsのLanguage Serverのプラグイン
      • CSSの型情報を取得してtsのように扱えるようにする
    • linter-plugin
      • lintルール

複雑なフォームを継続的に開発していくための技術選定・設計・実装

izumin5210さん
https://speakerdeck.com/izumin5210/number-tskaigi2025

  • フォームの作り方
    • useStateだけで
    • フォームライブラリ
      • 面倒事は吸収してくれる
      • JSX書いてる中にバリデーション条件書いたりしてるのが気になる
      • テストがしづらい
    • バリデーションスキーマ
      • zodとかで制約を宣言
      • UIから独立して扱える
      • zodは形状と制約
  • jotai
    • ロジックをUIと分離できるといい
    • 値でいいものは値として扱う

技術書をソフトウェア開発する - jsprimerの10年から学ぶ継続的メンテナンスの技術

azuさん
https://azu.github.io/slide/2025/tskaigi/jsprimer.html

  • jsprimerなぜメンテし続けてるか
    • JSの仕様が変化し続けているから
    • 書籍もメンテナンスしないと古くなってしまう
    • web板がliving standardで書籍はスナップショット
  • どうやって更新し続けてるか
    • 扱うスコープを絞る
    • 書きやすさよりも読みやすさ
    • 既知の言葉で未知を説明する
      • いきなり未知の言葉が出るとそこで止まってしまう
    • サンプルコードの自動テスト
    • textlintで校正と統一
    • 全体を可視化
      • 章ごとの文章量
      • リンクして依存してる章の関係
    • 全てオープンスース
  • 分析
    • メトリクスをとってる
    • 読まれ方
    • コードを実行されてるか
    • 問題を報告するフォームから連絡されてるか

ts-morphで、人間も編集できるコード生成を実現しよう!

池奥裕太/@yuta-ikeさん
https://www.docswell.com/s/4136989/K7RPN6-2025-05-24-135029

  • 自動生成ファイル
    • APIスキーマから生成したファイルなど
    • 手動で修正しても次生成したら消える
  • 自動生成ファイルに手を入れたい
    • 手動ファイルをimportして使う処理を自動ファイルに入れる
  • スキーマ駆動開発
  • 自動生成ファイルの差分更新
    • 現状の実装とOpenAPIを比較して差分だけ更新するようにする
    • ASTを見て差分を特定する
    • ts-morphを使う

機能的凝集の概念を用いて複数ロール、類似の機能を多く含むシステムのフロントエンドのコンポーネントを適切に分割する

NoritakaIkedaさん
https://speakerdeck.com/noritakaikeda/ji-neng-de-ning-ji-nogai-nian-woyong-ite-fu-shu-roru-lei-si-noji-neng-woduo-kuhan-musisutemuno-hurontoendonokonponentowoshi-qie-nifen-ge-suru

  • UIコンポーネントの分け方
  • 凝集度
    • 単一の目的にどれだけ集中してるかの度合い
  • 論理的凝集
    • 似た処理をフラグで条件を切り替える
    • コードが増えると複雑性が増す
  • 機能的凝集
    • モジュール全体を単一の目的のためにする
    • コードの重複が起きる

TS特化Clineプログラミング

mizchiさん
https://tskaigi.mizchi.workers.dev/

  • うまくいくプロンプト
    • 結論
      • 書きすぎないこと
      • 出力例をとにかく例示
      • 両立条件の矛盾を避ける
    • TDDが大事
      • 修正を継ぎ足すと壊していくし壊れたことに気づいてくれない
      • 壊れたことに気がついて自律的に回復させてほしい
    • コンテキストをコードに残して維持させる
      • どういう気持ちでそのコードを書いたかコメントを書かせる
      • in source testingもきく
        • ファイルが肥大化しやすくて800-1000行で止まる
      • type.tsにドメインの型を集約
    • ts + 関数型ドメインモデリング
      • classだと内部状態が増えてしまう
      • 人間でも辛いがAIでも精度が落ちる
    • ファイル配置規則を明記
      • 明記しないと推測し始める
    • 詳細に書きすぎると無視される
      • 分割してどこにあるかだけ書いておく
      • 必要なときに参照するよう指示する
    • Copilotだと
      • 型定義をピン度目しておくと優先的に見てくれる
      • コメントから書き始めるといい
    • テストカバレッジ100%目指せと言って書かせまくる
      • 採用できないものも多いがいい
    • 似たAPIのライブラリを置き換えるのは得意
  • うまくいかないプロンプト
    • 型だけでの設計
      • 方だけで抽象的に設計する能力はない
    • 非同期処理の例外処理が下手
      • 何でもtry/catchして捨てられる
    • 環境構築が下手
      • 無理矢理動かすために破壊しまくる
      • ボイラープレートは自分で作ってそこからやるといい
    • 無関係なものを置いておいてはいけない
      • あるとそれを使おうとしてしまう
    • デバッグログを食いまくる
      • ログ大量に仕込んで自分で実行してコンテキストウィンドウ食いつぶす
      • console.logの掃除もしてくれないので注意
    • 人がリファクタリングしたものを戻される
      • AI自身のコードが一番いいと思ってるので戻される



以上の内容はhttps://ozaki25.hatenadiary.jp/entry/2025/05/24/203505より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14