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
ANDPAD inc
December 08, 2025
Programming
270
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Go コードベースの構成と AI コンテキスト定義
奥村 雅敏
2025 年 12 月 8 日
GO・GMOペパボ・アンドパッド "Go" 同勉強会
ANDPAD inc
December 08, 2025
More Decks by ANDPAD inc
See All by ANDPAD inc
Go 1.27 における memory allocation の高速化
andpad
0
210
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
160
OS アップデート対応の取り組み方がもっと共有されてほしい
andpad
0
130
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
480
ANDPAD Ruby sponsor session in RubyKaigi 2026
andpad
0
250
AWS WAFの運用を地道に改善し、自社で運用可能にするプラクティス
andpad
2
1.2k
アプリから 360 度カメラ「RICOH THETA」に接続して写真を撮影する
andpad
0
78
アンドパッドが提供する Drinks and Local Meals と Drinkup を大公開
andpad
0
140
建設DXを支えるANDPAD: 2025年のセキュリティの取り組みと卒業したいセキュリティ
andpad
0
560
Other Decks in Programming
See All in Programming
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
1
140
React本体のコードリーディング
high_g_engineer
1
150
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
110
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
300
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
270
VibeCodingからAgenticWorkflowへ
starfish719
0
580
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
520
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.8k
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
530
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
550
引き算の組織 ― アウトカムとAIに全振りするために辞めたこと ― / Organization by Subtraction
hirokiyamamoto14
PRO
0
200
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
390
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
10k
Docker and Python
trallard
47
4.1k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
490
The Pragmatic Product Professional
lauravandoore
37
7.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.9k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
240
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
800
The untapped power of vector embeddings
frankvandijk
2
1.8k
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 ご清聴ありがとうございました