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
AIとTDDによるNext.js「隙間ツール」開発の実践
Search
Makoto Tateno
August 27, 2025
Technology
1.2k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AIとTDDによるNext.js「隙間ツール」開発の実践
Makoto Tateno
August 27, 2025
More Decks by Makoto Tateno
See All by Makoto Tateno
'use server'の越境を可視化する Next.jsの'use server'と見えないPOSTとの向き合い方
makotot
0
49
そのコンポーネント、サーバー?クライアント?App Router開発のモヤモヤを可視化する補助輪
makotot
4
1.1k
Other Decks in Technology
See All in Technology
500名弱規模の組織のPythonプロジェクト(dbt) をどう管理するか?
hiracky16
0
360
パスキーでドライブする アカウント統合(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
360
:syncing_time:
sksat
3
840
Oracle AI Databaseデータベース・サービス: BaseDB/ExaDB-Dの可用性
oracle4engineer
PRO
1
960
マイナンバーカード本人確認の実装比較(OAuth/OIDC Numa (Immersion) Workshop 2026) / 20260825 numa-12
oidfj
PRO
0
340
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.3k
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
VPCでもFloatingIPを使いたいんだ
y_kotani
1
130
AI駆動開発はどこまで来たのか? ファインディの最新実態調査で読み解く現在地 Devin Con Tokyo
akiratom
4
1.9k
EUDIWの枠組みを出発点に民間エコシステムの在り方を考える(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
340
IHV like なユースケースへのOpenID Connect 関連仕様の適用事例
optim
0
360
顧客の要望は2次情報である 〜アンテナを張るFDEの構造論〜
noriakioji
5
1k
Featured
See All Featured
A better future with KSS
kneath
240
18k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Accessibility Awareness
sabderemane
1
180
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
880
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
300
GraphQLとの向き合い方2022年版
quramy
50
15k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Music & Morning Musume
bryan
47
7.3k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
480
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
360
Measuring & Analyzing Core Web Vitals
bluesmoon
9
970
Transcript
AIとTDDによる Next.js「隙間ツール」 開発の実践 規約ファイルのコンポーネントヒエラルキーをGemini CLIとTDDで可視化する 2025.08.27 「実践Next.js!AIアウトプットと コンポーネント設計」 最新事情 LT
Makoto Tateno
2 / 10 自己紹介 Makoto Tateno / 舘野 真 株式会社カオナビ
github.com/makotot x.com/makototdev
3 / 10 課題:ファイル構造 ≠ コンポーネント階層 この複雑なファイル構造から… …この階層を直感的にイメージしたい 引用元: https://nextjs.org/docs/app/getting-started/project-
structure#component-hierarchy app/ ├── (dashboard)/ │ ├── layout.tsx │ ├── page.tsx │ └── users/ │ └── [id]/ │ └── [action]/ │ └── page.tsx ├── @modal/ │ ├── default.tsx │ └── layout.tsx ├── _components/ │ └── Button.tsx ├── content/ │ ├── [...slug]/ │ └── [[...path]]/ ├── error.tsx ├── global-error.tsx ├── layout.tsx ├── loading.tsx
4 / 10 「隙間」を埋めるツールをAIエージェントとTDD 規約のファイルとディレクトリーを読み取って、コンポーネントヒエラルキーをJSONで出力すれば良い? コンテキストが限定的 → AIエージェントと相性が良さそう 期待結果が明確 →
TDDに向いていそう
5 / 10 AIエージェントがTDDを進める AIエージェントにNext.js公式ドキュメントを読ませて、TDDで進めることを GEMINI.md に記載してから 最初に「こういう結果になってほ しい」という失敗するテストを書 かせる
テストをパスする最小限のコード を生成させる 実装上の重複であればGemini CLI 自身がリファクタリングを提案 1. RED: 失敗するテスト 2. GREEN: テストをパス 3. REFACTOR: リファクタリング
6 / 10 AIエージェントによるTDDで直面した壁 1. コンテキストが「大きすぎる」 ✕ API Error: read
ETIMEDOUT テストファイルが2,000行弱まで肥大化 → タイムアウト → 人間がテストを分割し、コンテキストを小さくする必要 2. コンテキストが「曖昧すぎる」 当初、ファイル構造をほぼそのままJSONにして出力してきた GEMINI.md にNext.js公式から分かる範囲のルールを詳細に記載して指示を繰り返した → 人間がルールを明文化し、コンテキストを具体的にする必要
7 / 10 コンポーネントヒエラルキーをJSONで出力 「見えない階層」をマシンリーダブルなデータに ファイル構造という暗黙のルールを、誰でも利用可能なJSON データに変換 これにより、様々なツール連携が可能かも? デバッグの高速化 layout
のネストや error.tsx の適用範囲などを可視化 し、問題の原因を素早く特定 ドキュメントの自動生成 プロジェクトのルーティング構成をドキュメントに反映 静的解析の拡張 「このセグメントには loading.tsx が必須」といった独自 ルールを自動チェック { "name": "app", "path": "app", "type": "app-directory", "children": [ { "name": "layout.tsx", // ファイル名、またはフォルダ名 "path": "app/layout.tsx", // appディレクトリからの相対パス "type": "layout", // 規約の種類 "children": [ // 再帰的な階層構造 { "name": "template.tsx", "path": "app/template.tsx", "type": "template", "children": [ { "name": "loading.tsx", "path": "app/loading.tsx", "type": "loading", "children": [ { "name": "page.tsx", "path": "app/page.tsx", "type": "page",
8 / 10
9 / 10 まとめ Next.jsの複雑さを補うツールを作ることが開発効率改善に可能性がある 補う → 隙間を埋める → コンテキストが狭い
→ AIエージェントに向いている可能性が高い TDDは、AIエージェントが期待通りに成果物を生み出しているか確認する上で効果的 Red/Green : AIが期待通りに動いているかの明確な指標になる Refactor : 「良いコード」とは何かを定義する、人間の介入が不可欠な領域 AIエージェントへのインプットの質と量が成果物の質に直結 的確な「量」と「質」のコンテキストをAIに与え続けることが、人間の重要な役割
ありがとうございました!