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
Vibe Coding×プロダクト開発:リプレイス高速化の舞台裏
Search
どすこい
June 16, 2025
0
5
Vibe Coding×プロダクト開発:リプレイス高速化の舞台裏
2025-06-16 セミナー『Vibe Coding×プロダクト開発:リプレイス高速化の舞台裏』のスライドです
どすこい
June 16, 2025
Tweet
Share
More Decks by どすこい
See All by どすこい
Vibe Coding 現場レポート ― AI前提のソフトウェア開発の裏側をのぞく
daisuketakeda
0
17
Goにおける 生成AIによるコード生成の ベンチマーク評価入門
daisuketakeda
2
100
Cursor AI Agentと伴走する アプリケーションの高速リプレイス
daisuketakeda
1
160
2024年のAIやっていき 2025年のAIやっていき
daisuketakeda
0
42
VibeCoding時代のエンジニアリング
daisuketakeda
1
430
データサイエンスをするつもりが、KPI数値算出がなーんできてないぜ!新卒1年目が配属1ヶ月で挑んだサブスクサービスのKPI数値算出タスク
daisuketakeda
0
530
Go Modulesの仕組み Bundler(Ruby)との比較を添えて
daisuketakeda
0
2.6k
初めてのRubyと 初めての地域Ruby
daisuketakeda
0
1
Featured
See All Featured
Designing for Performance
lara
610
69k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Navigating Team Friction
lara
189
15k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
51k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
How to Think Like a Performance Engineer
csswizardry
27
2k
Scaling GitHub
holman
463
140k
Automating Front-end Workflow
addyosmani
1371
200k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Transcript
1 Vibe Coding×プロダクト開発 ゼロイチだけじゃない! ⼤規模プロジェクトでの活⽤法 武⽥ ⼤佑 (どすこい) GMOペパボ株式会社 EC事業部 プロダクトチーム 2025.06.19
2 アジェンダ 1. ⾃⼰紹介 2. Vibe Codingとは 3. 事例紹介 4.
知⾒とまとめ
3 アジェンダ 1. ⾃⼰紹介 2. Vibe Codingとは 3. 事例紹介 4.
知⾒とまとめ
⾃⼰紹介 4
5 ⾃⼰紹介 EC事業部 プロダクトチーム 武⽥ ⼤佑 Daisuke Takeda どすこいと名乗っています! 去年はNext.jsの開発が多かったですが、 最近はバックエンドの開発を主にしています。
業務活⽤とは別に、AIやLLMに興味があり、 それらの領域で登壇もしてました (ICONIP2024, JASAI2024) • X: @doskoi64
6 私たちは「⼈類のアウトプットを増やす」ことをミッションとし、 インターネットやテクノロジーの⼒で情報発信のハードルを下げる⽀援をしています。
7 アジェンダ 1. ⾃⼰紹介 2. Vibe Codingとは 3. 事例紹介 4.
知⾒とまとめ
Vibe Codingとは 8
ペパボのコンテンツを引⽤します 9 Vibe Codingとは https://speakerdeck.com/daisuketakeda/vi becodingshi-dai-noenziniaringu https://tech.pepabo.com/2025/04/04/decla ration-vibe-coding-training/
10 完全に雰囲気に⾝を任せて、コードの 詳細に気を払わず、⾃然⾔語だけで指 ⽰をしてコーディングする Andrej Karpathy (X:@karpathy) 2025-02 OpenAIの創設メンバー Vibe
Codingとは Vibe Codingとは
11 2022 ~ 2023 Vibe Codingとは
12 2024 ~ 今 Vibe Codingとは
13 ⼈間とAIのドライバー交代
14 https://staff.persol-xtech.co.jp/hatalabo/mono_engineer/568.html Vibe Codingとは
15 Vibe Codingとは コーディングにおける“⾃動運転”のレベル https://speakerdeck.com/watany/the-end-of-the-special-time-granted-to-engineers?slide=36
16 ⼈間が数⼗、数百⾏コードを1⽇で書くところ... AIを使えば1万⾏書くことができる 圧倒的な量を誰でも書くことができる ⼈間とAIのドライバー交代 Vibe Codingとは
17 コードを検証できない コードを更新できない コードを保証できない 祈ることしかできない 1万⾏コードを簡単にリリースできない Vibe Codingとは
18 AIによる圧倒的な量を どうやって価値へ繋げるのか Vibe Codingとは
19 AIによる桁違いのコードの物量をなんとかしたい! そこで、これまで培ってきた エンジニアリング どうやって⼤量リリースするのか Vibe Codingとは
20 • 優れた設計(アーキテクチャ)思想 • 変更に強いデータモデリング • 徹底された⾃動化テスト • 品質を維持するためのガードレール •
迅速かつ安全なリリースを実現するCI/CDパイプライン • 多段階の抽象度でのドキュメンテーション どうやって⼤量リリースするのか Vibe Codingとは
21 ビジネス価値に繋げるために... • ⼤量リリースに対応したマーケティング • ⼤量リリースを前提としている企画、ディレクション • ⼤量リリースを対処できるカスタマーサポート エンジニアリング部⾨だけでなく、組織全体で対応していく どうやって⼤量リリースするのか
Vibe Codingとは
22 アジェンダ 1. ⾃⼰紹介 2. Vibe Codingとは 3. 事例紹介 4.
知⾒とまとめ
事例紹介 23
事例紹介 • 多数のバッチ機能のコードをGoにリプレイスします • 既存コードにはドキュメントや⾃動テストが⼗分には ない • クリーンアーキテクチャを参考にディレクトリ構成など を整え、⾃動テストも充実させたい ⽬的紹介
24
事例紹介 • ドキュメントが無く⾃動テストが充実していない、古い⾔語ラ ンタイムのコードをバージョンアップ対応する実装難易度は、 AIを⽤いて全体を置き換えることとそれほど実装難易度に差が ないのではないかと考え、検証も含めて実施した • 静的解析があるコンパイル⾔語で、並列実⾏にも強みがあるGo を⽤いたリプレイスを採⽤した 経緯
25
事例紹介 • ⾃動テストが充実していて、ディレクトリ構成などが 整っているGoの実装へのリプレイスをすべてのバッチ で完了する • 元の⾔語で実装されているバッチの処理を正とする • できるだけ同じプロンプトで実装を完了させる ⽬指すゴール
26
事例紹介 • AIによるコード⽣成のみで実装させる⽅法を⽬指した • 最終的に、AIによる実装で、複数の置き換え作業を並 列に進められる状態を⽬指す • レビューはVibeでせず、⼈が従来の⼿法でする ⽅法 27
事例紹介 • これらの状況で試⾏錯誤した様をお伝えします! • 全然だめな実装だったNG例を3つ、 動いてよさそうだったOK例を2つ紹介します! • みなさまのVibe Codingの知⾒に寄与できると幸いで す!
今回のお話では... 28
NG例1: 単純にリプレイス元のコードを元にリプレイスするように伝える 29 事例紹介 意図 単純にリプレイス元のコードを指定して、Goにリプレイスするように指⽰ 最も単純で最低限のプロンプトでコード⽣成させた <@元のコード>をGoにリプレイスしてください。
NG例1: 単純にリプレイス元のコードを元にリプレイスするように伝える 30 事例紹介 結果 ⼤きなmain.go 動かなかったが、どこが原因で動いていないかの調査が困難 反省 レビューも運⽤もできない 本番環境へマージするのは困難
⼩さいバッチ処理のコードだと、これでリプレイスが⼗分可能かもしれない
NG例2: 中間⽣成物を作らせてそこからgoのコードを⽣成 31 事例紹介 意図 ⼀度、仕様を⽂章にして、そこから新しくGoのコードを書かせた <@元のコード>のドキュメントをmdファイルに書いてください。 依存先、依存元や処理の詳細について書いてください。 <@中間⽣成物md>を参考に、Goへのリプレイスを書いてください。
NG例2: 中間⽣成物を作らせてそこからgoのコードを⽣成 32 事例紹介 結果 Goのパッケージ分割や依存するDBを扱う処理はうまくできてそう main.goが⼤きく、ほとんどそこに実装が集中してしまっている 詳細まで実装がされてなかったり、TODOのままで未実装だったりする 反省 細かく実装して、詳細まで実装して欲しい
Goのパッケージ構造やディレクトリ構成を意識してファイル分割して欲しい
NG例3: 中間⽣成物を作ってもらう+ディレクトリ構成を指⽰+TDDで細かく実装 33 事例紹介 意図 ディレクトリ構成をREADMEで指⽰ Goパッケージの分割も明⽰ 少しずつ進めて、詳細に実装を進めて欲しいのでTDDで実装してもらう <@中間⽣成物md>を参考に、Goへのリプレイスを書いてください。 <ディレクトリ構成を書いたREADME>を参考にクリーンアーキテクチャを意
識してパッケージ分割やファイル分割をして。 細かくTDDで実装して。
NG例3: 中間⽣成物を作ってもらう+ディレクトリ構成を指⽰+TDDで細かく実装 34 事例紹介 結果 細かく完了を報告してくるようになった Goのパッケージ分割やディレクトリ構成が整った ファイルが細かく分けられ、テストコードもすべてに書かれた ただし、TODOで実装されてないものやモックテストが多かった 反省
元のコードがわからなくなることがあったので、リプレイス元のコードも指⽰ TDDを指⽰するより、単にテストコードを書くように指⽰
あとすこし...! 35
OK例1: 元のコード、ドキュメント、READMEを参考+テストコードも書く 36 事例紹介 意図 リプレイス元のコードも指⽰、テストコードも書いてもらうようにした これまでの反省を⽣かした結果を詰め込んだ <@中間⽣成物md>を参考に、<@元のコード>をGoへのリプレイスを書いて ください。 <ディレクトリ構成を書いたREADME>を参考にパッケージ分割やファイル分
割をして。 それぞれの実装に、できるだけテストコードを書いて。
OK例1: 元のコード、ドキュメント、READMEを参考+テストコードも書く 37 事例紹介 結果 Goのパッケージ分割やディレクトリ構成が整った その上で、実装がほとんど完了していた テストコードも単純なケースは書かれていた 実⾏したら動くし、動作も正しそうだった! 反省
まぁまぁよかったけど....
OK例1: 元のコード、ドキュメント、READMEを参考+テストコードも書く 38 事例紹介 結果 Goのパッケージ分割やディレクトリ構成が整った その上で、実装がほとんど完了していた テストコードも単純なケースは書かれていた 実⾏したら動くし、動作も正しそうだった! 反省
まぁまぁよかったけど.... 巨⼤PRになってレビューが困難...!
もう⼀歩...! 39
OK例2: タスク分解してもらう→各タスクをサブタスクにわけてTDDの指⽰ 40 事例紹介 <@中間⽣成物md>を参考に、<@元のコード>をGoへのリプレイスをします。 <ディレクトリ構成を書いたREADME>を参考にパッケージ分割やファイル分割を します。これをいくつかのタスクに分割して進めたいです。 タスク分割をしてmdに書き出してください。 <@元のコード>をGoへのリプレイスをします。 適宜、<ディレクトリ構成を書いたREADME>を参考にしてください。
今回は<タスクmd>のタスクをサブタスクに分けてTDDで実装します。 サブタスクに分解してください。 サブタスクをもとにTDDで実装していってください。
OK例2: タスク分解してもらう→各タスクをサブタスクにわけてTDDの指⽰ 41 事例紹介 意図 これまでの知⾒を⼊れてみる タスク分解→サブタスク分解×TDDという語をプロンプトに含め、少しずつ実 装する タスクごとにPRを切ることで、⼤きすぎないPRでマージしていける
OK例2: タスク分解してもらう→各タスクをサブタスクにわけてTDDの指⽰ 42 事例紹介 結果 ⼗分レビューできる⼤きさのPRに分けることができた! テストコードも⼗分に書けている 実装の⽅向性が変な時や、意図してない動きをした時に⾒つけることができる コードの量によってPRを分けることもできる 反省
割と良い! タスク分解、サブタスク分解で妥当かどうかは⼈間が吟味、判断が必要 タスク実⾏の粒度が⼩さいので、やり直しも簡単にさせられる
知⾒とまとめ 43
44 • 実装に対して必要な情報を渡して、タスクを分解し て、細かく実装してもらうと⽐較的よかった • ⼈間側も完成物に対する⾼い解像度が必要になりそう • Vibe Codingによって短時間で実装を試せるので、ガン ガン失敗しても時間浪費は短かかった
知⾒とまとめ 1/2 まとめ
45 • 実装完了まで⼈間がコードを触る時間が短くなった • 設計,レビュー/検証が⼈間の仕事になりそう 知⾒とまとめ 2/2 まとめ
46 AIによる圧倒的な量を どうやって価値へ繋げるのか
47 Let’s Vibe