Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AIとTDDによるNext.js「隙間ツール」開発の実践
Search
Makoto Tateno
August 27, 2025
Technology
1.3k
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
51
そのコンポーネント、サーバー?クライアント?App Router開発のモヤモヤを可視化する補助輪
makotot
4
1.2k
Other Decks in Technology
See All in Technology
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
5
1.2k
会社説明資料
persolserverworks
0
9.8k
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
1.1k
Webの常識が通じないHTMLメールのダークモード
teamlab
PRO
0
130
AI駆動で「他アプリの音を加工できる」アプリを作った
satomasahiro2005
0
170
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
140
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
会社紹介資料 / Sansan Company Profile
sansan33
PRO
31
430k
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
210
DBについての基礎説明(MySQL編) - コロプラ 2026年度 新卒研修
colopl
0
130
Classmethod Company Deck
satoshi7
1
730
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
We Are The Robots
honzajavorek
0
400
Evolving SEO for Evolving Search Engines
ryanjones
0
330
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Claude Code のすすめ
schroneko
67
230k
Unsuck your backbone
ammeep
672
58k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
330
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
270
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に与え続けることが、人間の重要な役割
ありがとうございました!