Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TRIAL Meetup#1
Search
株式会社ヌーラボ
PRO
December 18, 2025
Technology
73
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TRIAL Meetup#1
株式会社ヌーラボ
PRO
December 18, 2025
More Decks by 株式会社ヌーラボ
See All by 株式会社ヌーラボ
配布資料_ヌーラボの情シスがおすすめする_問い合わせ対応を削減するBacklog活用術.pdf
nulabinc
PRO
0
48
Bits Agent Builder の⼊⾨と活⽤事例
nulabinc
PRO
0
1.9k
Getting Started with Bits Agent Builder: Real-World Use Cases
nulabinc
PRO
0
72
The_Evolution_of_Bits_AI_SRE.pdf
nulabinc
PRO
0
360
進化するBits AI SREと私と組織
nulabinc
PRO
4
1k
実践 Datadog MCP Server
nulabinc
PRO
4
910
全社横断PjM⽀援チーム “PEaS”の取り組みと プロジェクトマネジメント でのAI活⽤について
nulabinc
PRO
0
220
Datadog の RBAC のすべて
nulabinc
PRO
4
900
Datadog Live Tokyo 2025登壇資料
nulabinc
PRO
0
210
Other Decks in Technology
See All in Technology
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.5k
APIセキュリティを組織で実現するには~注力する点と設計・実装に入れたい対策~
riiimparm
2
720
ブラウザで変わるID連携(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
350
NANDでも描画したい!
nichica906
3
810
本番に近いテストをもっと手軽に - Postmanで広がるAPIテストの世界 / Expanding the World of API Testing with Postman
yokawasa
1
130
LLMアプリ、 雰囲気で運用してませんか? 〜LLMOpsの現在地〜
taka_aki
1
550
Kiro Crew で始める マルチエージェント開発
miu_crescent
PRO
0
200
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
「面白い!」を信じ抜け。激動の時代を貫く、オンリーワン・エンジニアの条件
kizawa2020
2
390
マイナンバーカード本人確認の実装比較(OAuth/OIDC Numa (Immersion) Workshop 2026) / 20260825 numa-12
oidfj
PRO
0
340
Digital Credentials API × OpenID4VP ブラウザ完結型本人確認の実装知見(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
340
ハッカソンで入賞した話 @ Findy LT
asari194617
0
1.5k
Featured
See All Featured
Discover your Explorer Soul
emna__ayadi
2
1.3k
Six Lessons from altMBA
skipperchong
29
4.5k
Making Projects Easy
brettharned
120
6.7k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
950
sira's awesome portfolio website redesign presentation
elsirapls
0
350
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Amusing Abliteration
ianozsvald
1
270
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
430
Ruling the World: When Life Gets Gamed
codingconduct
0
310
Scaling GitHub
holman
464
140k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Transcript
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. Tuesday, October 21st, 2025 at 7:00 PM JST TRIAL Meetup #1 〜最近トライした技術〜 Claude Code × Codemod でライブラリ移行をやりきる 株式会社ヌーラボ 田村 亮弥
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. 7月にヌーラボへ入社 🐣 前職はフロントエンド領域のエンジニアリングマネージャー。 フロントエンドまわりの仕様、ベストプラクティス、ライブラリの変遷を 追いかけるのが楽しい。 先々週から1000ピースパズルに挑戦中 (35%くらい)。 2 田村 亮弥 株式会社ヌーラボ (Nulab Inc.) サービス開発部 Backlog Unit 𝕏 @lollipop_onl
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. イントロ 3
Copyright Nulab Inc. All Rights Reserved. なんのはなし? 4 - Backlog
のフロントエンドでは スキーマライブラリ として myzod が使われていた - エコシステムの充実度 や 標準化の動き に対応するため Zod を利用したい - 平行する開発を止めずに迅速かつ安全に myzod を Zod に置き換える必要があった 値の型が期待するものであるかを チェックできるライブラリ Zod に近いインターフェースで 機能が限定的な一方、 処理が高速なライブラリ フォームのバリデーションとか APIレスポンスの自動チェックとか Standard Schema という 標準化プロジェクトがある
Copyright Nulab Inc. All Rights Reserved. やったこと 1. 移行できるかを調べる 2.
移行ツールを実装する 3. 手動移行を Claude Code にやらせる 4. 誰でも移行ができるようにする 5
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. 移行できるかを調べる 6
Copyright Nulab Inc. All Rights Reserved. ベンチマークをとる 7 移行して性能劣化が発生しないかどうかを 調べる
。 - myzod latest - Zod 3.2.0 - Zod 3 latest - Zod 4 latest https://github.com/lollipop-onl/zod-vs-myzod-benchmark myzodのベンチマークなので 有利不利はあるものの...
[email protected]
で著しく性能劣化が起こり 最新では改善していることが分かる ベンチマークツールで同等のコードを実行し てサンプルから大体の秒間実行回数を得る
Copyright Nulab Inc. All Rights Reserved. ベンチマークをとる 8 わかったこと: -
myzod が超絶に早い - Zod の特定バージョンのみ性能劣化が激しかった - Zod 3 の最新版でも一般的なアプリケーションにとっては十分な速度が出ること
Copyright Nulab Inc. All Rights Reserved. Backlog で使われているメソッドを調べる 移行対象のメソッドを絞るため、TypeScript Compiler
API を使った ツールを作成 。 https://github.com/lollipop-onl/find-myzod-schema 9 355ファイルで62種類6,488 個の メソッドが使われていた TypeScript Compiler API で型情報から 利用状況を収集
Copyright Nulab Inc. All Rights Reserved. Backlog で使われているメソッドを調べる わかったこと: -
単純移行できなかったり性能面で懸念があったりするメソッドの利用は限定的 - スキーマの定義は多数のファイルに渡る 10
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. 移行できそう! 11 件数は多いけど...
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. 12 移行ツールを実装する
Copyright Nulab Inc. All Rights Reserved. Codemod とは 13 『コードを
抽象構造木 (AST) として扱い、安全に自動リファクタリングするツール』 AST は Abstract Syntax Trees の 略 コードを構造として解析・変更でき る
Copyright Nulab Inc. All Rights Reserved. 1. zod-v3-to-v4 という Codemod
の実装を参照させる 2. myzod と Zod の互換性を調査させる 3. 開発環境を用意する 4. 移行するコードのパターンを一覧化してテストシナリオを書き出させる 5. Red-Green-Refactor サイクルで TDD させる https://github.com/lollipop-onl/myzod-to-zod 14 なるべく Claude Code に実装させるためのプラン
Copyright Nulab Inc. All Rights Reserved. - 参考にした設計や移行の方針などは Claude Code
に事前に調査させる - 暫定的な調査結果は reports/ に日本語で - 恒久的に必要になりそうなものは docs/ に - 意図しない挙動を抑止 15 ドキュメントは書き出させる
Copyright Nulab Inc. All Rights Reserved. - 移行前後のコードをテストシナリオとして用意させる - シナリオごとに
README を作成させて、意図するテストがされているか把握 16 人間にとってわかりやすいテスト設計
Copyright Nulab Inc. All Rights Reserved. - @t_wadaの実装プロセスで進めて で Red-Green-Refactor
サイクル になる - まずテストで実装しようとしているものを把握できるため、手戻りが少なくて済む - リファクタリングフェーズは視野が狭いものになりがち 17 TDD は t_wada プロンプトで Red(失敗するテストを作成)→Green(テストが成功する実装を行う) →Refactor(実装をリファクタリングする)の順で機能実装を行うアプロー チ 動作優先の実装で進めたので アップデートするときに課題になるかも
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. だいたい移行できた! 18
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. 19 手動移行を Claude Code にやらせる
Copyright Nulab Inc. All Rights Reserved. パース結果のエラーのインターフェースが大きく異なるため、手動の移行が必要になった。 - Codemod を書かせるのも複雑になりそう
- かといってすべて手動でやるには量が多い 20 Codemod の実装が複雑になる移行 →
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. Codemod と Claude Code を併用しよう! 21
Copyright Nulab Inc. All Rights Reserved. 手動で置き換えができないコードを出力させ Claude Code に渡しやすくする
- 移行ガイドへのリンクも含める 22 手動移行が必要な箇所を出力させる
Copyright Nulab Inc. All Rights Reserved. Claude Code 上で Codemod
を実行して、結果を基に手動移行をやらせる 1. ! npx @lollipop-onl/myzod-to-zod “*.{ts,tsx}” --quiet --write 2. ` 結果を基に手動移行を実施 3. 型チェックやテストがパスすることを確認 23 Claude Code に手動移行をやらせる
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. 完全移行できた! 24
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. 25 誰でも移行ができるようにする
Copyright Nulab Inc. All Rights Reserved. Claude Code Command を用意する
26 - Claude Code には再利用可能なコマンドを定義できる機能がある - 移行に必要なプロセスをコマンドとして定義して誰でも移行が実行できるようにする
Copyright Nulab Inc. All Rights Reserved. 27
Copyright Nulab Inc. All Rights Reserved. 28
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. だれでも移行できる ようになった! 29
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. 30 〆
Copyright Nulab Inc. All Rights Reserved. まとめ 31 - Claude
Code に捨てる予定のコードを書かせるのは楽しい! - Codemod を実装させることで漏れなく移行させられる - Codemod で実現しづらい変更はプロンプトで変更させるのはアリ - t_wada プロンプトによる TDD はお手軽 - Claude Code Commands で指示を共有可能な形にすれば再現性のある作業ができる • https://github.com/lollipop-onl/zod-vs-myzod-benchmark • https://github.com/lollipop-onl/find-myzod-schema • https://github.com/lollipop-onl/myzod-to-zod