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
検索機能リプレイスを4ヶ月→2ヶ月に! AI Agentで実現した2倍速リプレイス
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Maple
September 18, 2025
Programming
4
1.3k
検索機能リプレイスを4ヶ月→2ヶ月に! AI Agentで実現した2倍速リプレイス
AI Agentでフロントエンドリプレイスを倍速にした話
Maple
September 18, 2025
Tweet
Share
More Decks by Maple
See All by Maple
モダンJSフレームワークのビルドプロセス 〜なぜReactは503行、Svelteは12行なのか〜
fuuki12
0
370
フロントエンドチームでリアーキテクチャを行っています!
fuuki12
0
300
Other Decks in Programming
See All in Programming
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
160
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
190
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
250
20260320登壇資料
pharct
0
120
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
4.2k
Claude Code Skill入門
mayahoney
0
440
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
330
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
170
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
210
飯MCP
yusukebe
0
380
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
170
Strategy for Finding a Problem for OSS: With Real Examples
kibitan
0
110
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
BBQ
matthewcrist
89
10k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
420
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
A Tale of Four Properties
chriscoyier
163
24k
Become a Pro
speakerdeck
PRO
31
5.9k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
検索機能リプレイスを4ヶ月→2ヶ月に! AI Agentで実現した2倍速リプレイス フロントエンド開発の現在地 -PoCの壁を越えるAIフレンドリーな開発の挑戦- 2025-09-19 by Maple
登壇者紹介 Name → Maple Carrier → 株式会社SODAでフロントエンドテックリード を担っております。 Hobby →
ピアノ、アニメ
None
None
アジェンダ リプレイスの経緯と対象画面 アーキテクチャ 実装概要 AI駆動開発の詳細 成功要因と得られた成果
リプレイスの経緯と対象画面
今回リプレイスした機能-検索- 前提として、App(Flutter)は既に新しい検索画面の実 装を終えていて、Web(React)は後追いの実装です。 デザイン・機能の観点でAppを追従する必要があり ました。 課題 UX (LCP等) の悪化により、ユーザーの離脱率が
増加 Before After
機能紹介-検索機能1- サジェスト機能 検索履歴機能
機能紹介-検索機能2- 簡易フィルター機能 詳細フィルター機能
なぜリプレイス? 現状の技術的負債 複雑度・依存度が高い 変更障害率が高い 仮説 Flutterで先行で実装している資産を 活用して、 上手くAIを活用できれば工数を大幅 に圧縮できるのではないか?
アーキテクチャ
Container/Presentationalパターンを使用しています。 詳しくはZenn記事に記載しておりますので、ご興味あれ ばご覧ください! 今回使用したアーキテクチャ Open Link
React/Flutterのアーキテクチャ差分 hooks 共通ロジック PC View PC/SP で完全に独立したコンポーネント 共通ロジックは hooks で共有
デバイスごとに最適なUX提供 Views Models Repository lib/ |-- models/ |-- views/ |-- repository/ ビジネスドメインごとに実装 Mobile View React アーキテクチャ app/ |-- hooks/ |-- pc/ |-- sp/ Flutter アーキテクチャ
実装概要
設計→実装の流れ マッピングファイル生成 空ファイルの作成 Props設計 空Componentの作成 View, Logic実装
設計フェーズ 〜並列化Agentをフル活用〜
Flutter → React マッピングファイル生成 Flutterパス → Reactパスの対応表を出力 FlutterFilePath
FlutterClassName ReactFilePath
ディレクトリ構造、空ファイルの作成 以下のようなディレクトリ構造を生成して、空ファイルを作成する 1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 src # Generated client search endpoints ├── app │ └── search │ ├── page.tsx # Main search page branching │ ├── layout.tsx # Search layout │ │ │ ├── hooks # Container specific ( relationship) │ │ └── useHogeContainer │ │ └── index.ts │ │ │ ├── constants # text constants │ │ └── index.ts │ │ │ ├── pc # Desktop components │ │ └── components │ │ ├── container # Container (logic) │ │ │ ├── index.tsx # Main container component │ │ │ └── SimpleFilterContainer │ │ │ └── index.tsx │ │ └── presentational # components │ │ └── SearchResultView │ │ ├── index.tsx │ │ └── Loading │ │ └── index.tsx │ │ │ └── sp # Mobile components │ └── components │ ├── common │ ├── container # Container (logic) │ └── [Same structure pc components container ] │ └── presentational # components │ └── [Same structure pc components presentational ] / / / / / - : / / / / / / / / / / / / / / / / / / / / API PC SP UI UI UI with with as as hooks components components 1 1
Props設計 → 空Componentの作成 以下のようなクラス図を生成して、Container毎にProps, interfaceのみをファイルに出力させる
設計で実際に使用したプロンプト 並列化エージェントを使用 画像のように${args}を設定して、各エー ジェントにスクリプトで配布を行う。 xmlタグを使用することで、Claude Code の理解度がアップする。 プロンプトは明確に網羅的に記載を行う ※参考:Claude Prompt
engineering overview
実装フェーズ チェーンパターンAgentをフル活用 各セクションにおいて、プロンプト設計がMustで発生する Viewの開発 AI 7割 Logicの開発 AI 7割 仕様漏れを人間が実装
3割 仕様漏れを人間が実装 3割 設計フェーズで出力したマッピングファイル等を元にプロンプトを作成
実装で実際に使用したプロンプト チェーンパターンエージェントを使用 各タスクを逐次的に行わさせるようにプロンプトを設 計 ※参考:Claude Chain complex prompts for stronger
performance
AI駆動開発の詳細
Agents Workflow × Claude Code × tmux を用いて、以下のようなAIエージェントのワークフローを実装しています。 チェーンパターン マネージャー・ワーカー協調による逐
次タスク実行 オーケストレーション パターン 今回は割愛 並列化パターン ワーカー(max16)による並列タスク実行 マネージャー ユーザー 最終レポート 複雑なタスク ワーカー 報告 タスク分解・送信 ワーカー ワーカー ワーカー ワーカー ユーザー タスク調整・配布 アウトプット →人間 →AI
設計・実装のスピードが大幅に向上 従来の開発プロセス見積もり AI Agentなし版 設計 実装 QAテスト QAテスト AI Agent開発
AI PoC&設計 実装 実際の開発工数
成功要因と得られた成果
成功要因 今回の成功要因としてはリプレイスだからという箇所もあります。 ですが、他のプロジェクトでも活かせる場面があるとも思っております。 明確な設計パターンの事前定義 Container/Presentationalパターン 命名規則とディレクトリ構造 段階的な実装アプローチ 空実装 (空ファイル) 人間による品質チェックポイント
あくまでも7割実装 エッジケースは存在する点を共通認識 Props定義 AIが一貫性のある出力を生成 View Logic実装
成果 開発工数 4ヶ月 バグ 0件 Core Web Vital 2ヶ月 想定していた見積もりから倍圧縮
AI実装では、エッジケースは存在する点を共通認識として念頭に置き、リファクタリング期間を設ける等を行い品質も担保
ご清聴ありがとうございました。