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
Go コードベースの構成と AI コンテキスト定義
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ANDPAD inc
December 08, 2025
Programming
250
1
Share
Go コードベースの構成と AI コンテキスト定義
奥村 雅敏
2025 年 12 月 8 日
GO・GMOペパボ・アンドパッド "Go" 同勉強会
ANDPAD inc
December 08, 2025
More Decks by ANDPAD inc
See All by ANDPAD inc
ANDPAD Ruby sponsor session in RubyKaigi 2026
andpad
0
200
AWS WAFの運用を地道に改善し、自社で運用可能にするプラクティス
andpad
2
880
アプリから 360 度カメラ「RICOH THETA」に接続して写真を撮影する
andpad
0
49
アンドパッドが提供する Drinks and Local Meals と Drinkup を大公開
andpad
0
120
建設DXを支えるANDPAD: 2025年のセキュリティの取り組みと卒業したいセキュリティ
andpad
0
430
小規模 SRE チームで支える、 Atlantis で実現するインフラ管理のセルフサービス化
andpad
1
110
「もっと正確に、もっと効率的に」ANDPADの写真書き込み機能における、 現場の声を形にしたエンハンス
andpad
0
1.3k
複数チーム並行開発下でのコード移行アプローチ ~手動 Codemod から「生成AI 活用」への進化
andpad
0
340
Building the Real World with Ruby
andpad
0
91
Other Decks in Programming
See All in Programming
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
540
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
230
LLM Plugin for Node-REDの利用方法と開発について
404background
0
160
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
620
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
490
柔軟なPDFレイアウトエディタを支える型システム設計 — Discriminated UnionとConditional Typeの実践
minako__ph
4
1.4k
Copilot CLI の継戦能力を高める コンテキスト管理
nozomutu
1
1.2k
RTSPクライアントを自作してみた話
simotin13
0
480
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
190
Inside Stream API
skrb
1
640
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
1.6k
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
3.4k
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
160
The untapped power of vector embeddings
frankvandijk
2
1.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
190
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
How GitHub (no longer) Works
holman
316
150k
Context Engineering - Making Every Token Count
addyosmani
9
940
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
44k
Transcript
© 2025 ANDPAD All Rights Reserved. 1 Goコードベースの構成とAIコンテキスト定義 奥村 雅敏
© 2025 ANDPAD All Rights Reserved. Confidential 2021年に自動車業界からSWEに転身 2024年 アンドパッド入社
アンドパッドでは請求管理プロダクトでバックエンド開発に従事 奥村 雅敏 株式会社アンドパッド 開発本部 Profile | 経 歴 2 自己紹介
© 2025 ANDPAD All Rights Reserved. Confidential テスト 3 開発でのAI活用
機能実装 リファクタリング ドキュメント作成・要約
© 2025 ANDPAD All Rights Reserved. Confidential 4 AIに対してプロジェクトの内容を伝える難しさ AIには背景情報を理解した上で回答してほしい
• 一般的なことではなくプロジェクト固有の文脈を理解してほしい • 質問のたび同じことを説明する手間 ➢ ドメイン知識 ➢ プロジェクトの構成 ➢ コーディングルール AIに伝わりやすくするための試みと知見を共有します
© 2025 ANDPAD All Rights Reserved. Confidential 5 AIにプロジェクトを伝える工夫 〜コンテキストを書く〜
複数のAIツールが共通して参照できるコンテキストを1箇所で管理する チームの開発環境では複数のAIツールを使っている Github上での自動レビュー Github Copilot AI統合エディタ Cursor / Claude Code MCP連携 Gemini 共通コンテキスト
© 2025 ANDPAD All Rights Reserved. Confidential • ディレクトリ構造の詳細 ◦
ツリー形式で構造を説明 + 各層の詳細を説明 ▪ 各層の責務と役割 • 依存関係のルール • 何を書くのかだけでなく、何を書いてはいけないのか • テストのガイドライン ◦ どのようにテストを書くのか ◦ お手本にするファイルを示す 6 共通コンテキストに書くこと①
© 2025 ANDPAD All Rights Reserved. Confidential 7 共通コンテキストに書くこと② •
実行してほしいコマンドを明確に書く ◦ AIが書いたものはAIでLintやテストをしてほしい ◦ 環境依存のコマンドをシームレスに実行 ▪ 環境変数などの設定も含めて一括で実行してもらう • 指定していても環境変数をうまく設定できないことが良くある ◦ 使ってほしいコマンドを使ってくれない時が良くある ▪ “RECOMMENDED”や「頻繁に使用」といった脚注を追記すると 従ってくれやすくなる様子
© 2025 ANDPAD All Rights Reserved. Confidential 8 共通コンテキストに書くこと③ •
技術スタックや使用技術 ◦ 使用言語 / インフラ / DB ◦ 全体像の把握に役立ちそう ▪ 人間が最初に見るような場所はAI向けにも有効そう • 外部ライブラリ使用のガイドライン ◦ AIは一般的なライブラリを引っ張ってきてしまいがち • 関連リポジトリ・周辺サービス・監視体制 ◦ 一応記述。影響するかも?
© 2025 ANDPAD All Rights Reserved. Confidential 詳細なREADMEを書く感覚 • チームにジョインした新メンバーのために、
丁寧に文書を残すように伝える • 細かいことでも書けることは書く 9 共通コンテキストを書く
© 2025 ANDPAD All Rights Reserved. Confidential とは言え、 AIにプロジェクト固有のルールを 毎回把握してもらい、
適切な出力をしてもらうのは難しい 10 AIに歩み寄った実装をする
© 2025 ANDPAD All Rights Reserved. Confidential 特にクリーンアーキテクチャはAIと相性が良さそう • 広く認知されているため、AIとしても学習データが多そう
• どこに何を書くのかが的確 • 各層が独立しているため、層のルールに従えば適切なコードを書ける ◦ AIがプロジェクト全体を把握する必要が無い ◦ コンテキストを理解していなくても、ある程度正確に出力される 11 歩み寄る工夫①: 一般論に合わせる 一般的なアプリケーションアーキテクチャにこちらから寄せに行く
© 2025 ANDPAD All Rights Reserved. Confidential Goならではのメリット • コードスタイルが揺れない
• 制御フローが分かりやすい • 構造体に余計な機能がついていない ◦ 継承がない ◦ コンストラクタ・デストラクタがない • Goのインターフェースは依存関係が明確になるので積極的に使いたい 挙動が予測しやすいので、AIにも読みやすい言語と言える 12 歩み寄る工夫②: Go言語の「予測しやすさ」を活かす
© 2025 ANDPAD All Rights Reserved. Confidential • 値オブジェクトを使う ◦
Goなら型定義・型エイリアスを使う ◦ プリミティブ型の意図が分かりやすくなる ◦ Goだと変数名を省略しがちなので、より分かりやすさが 増すかも ◦ 感覚としてかなり有効なので、置き換えを進めている ▪ 一つパターンを用意すれば、 同じ様な置き換えは結構正確にやっていくれる 13 歩み寄る工夫②: Go言語の「予測しやすさ」を活かす
© 2025 ANDPAD All Rights Reserved. Confidential 1 まとめ: AIとの協業は「対話」と「設計」で
1. AIに「教える」 AIをチームの新メンバーと捉え、 詳細なREADMEを書くように プロジェクトを伝える 2. AIに「歩み寄る」 AIが理解しやすいように、 予測可能で責務が明確な コードベースを設計する AIとのスムーズな協業
© 2025 ANDPAD All Rights Reserved. Confidential 既存のパターンに沿った実装を正確に生成はしてくれるが、 ゼロから新しい機能を完全に自動生成するのは難しい。 設計の判断が必要な部分は人間が介入する必要がある。
15 AIと共に開発を進める中での課題 ゼロからの実装は難しい
© 2025 ANDPAD All Rights Reserved. Confidential コーディング規約は定めていても、 細かい部分は見落としてしまう。 Lintツールとの併用が必要
16 AIと共に開発を進める中での課題 AgentモードとPlanモードなどの違 いが明確に分かっていない 各種モードの 使い分けができていない 細部の記法は 見落としがち
© 2025 ANDPAD All Rights Reserved. Confidential 17 ご清聴ありがとうございました