(Google 翻訳)シニアエンジニアが Cursor や Copilot などの AI ツールを使っている様子を見ると、魔法のように見えます。彼らは数
分で機能全体をスキャフォールディングし、テストとドキュメントを完成させます。しかし、よく観察すると、重要なことに気付く
でしょう。彼らは AI の提案をそのまま受け入れているのではなく、常に次のことを行っています。
生成されたコードをより小さく、焦点を絞ったモジュールにリファクタリングする
AI が見逃したエッジケースの処理を追加する
型定義とインターフェースの強化
アーキテクチャ上の決定に疑問を抱く
包括的なエラー処理の追加
言い換えれば、彼らは長年かけて苦労して得たエンジニアリングの知恵を AI の出力を形作り、制限するために応用しているのです。
AI は彼らの実装を加速させていますが、彼らの専門知識こそがコードの保守性を維持しているのです。
若手エンジニアは、こうした重要なステップを見逃してしまうことがよくあります。AI の出力をすぐに受け入れてしまうため、私が
「トランプのカードハウス」と呼ぶコードができあがってしまいます。これは、完成しているように見えても、現実世界のプレッシ
ャーで崩れてしまうコードです。
ref: The 70% problem: Hard truths about AI-assisted coding - Medium
生成 AI 時代の ADR - AI コーディングツールとプログラマ
27
Slide 28
Slide 28 text
Cline AI 時代のプログラマに必要なこと
このように整理できるはず。
コンテキストを記述する能力
ドメインを記述する能力
AI の性能に対する直感
AI に対する直感以外は、適切なモジュール分割、境界づけられたコンテキストの抽出であり、ユビキタス言語の構
築、DDD であり、ドメインエキスパートとしての実装対象の抽象化能力ではないか。
結局自分は .clinerules に結構な量の指示を書いており、これを自分の能力に合わせて構築できるのがプログラミン
グのドメインエキスパートとしての価値だと感じている。
ref: CLINE に全部賭けろ - Zenn
生成 AI 時代の ADR - AI コーディングツールとプログラマ
28
Slide 29
Slide 29 text
開発スピードの向上のために AI にコードを書いてもらう機会は増加するが、まだ AI はジュ
ニアエンジニアレベルの判断しかできず、セキュリティ・パフォーマンス・保守性などの問
題を解決するために人間の補助が必要
AI コーディングツールに暴走させず、適切な制約の中で高速に作業を進められるようにす
るためには、プログラマのアーキテクティング能力は依然として重要になる
静的解析・自動テスト・型定義・モジュール分割・ドキュメンテーション
生成 AI 時代の ADR - AI コーディングツールとプログラマ
29
Slide 30
Slide 30 text
→ 2025 年春としては、ADR はどんどん書くべきだと考える
ADR は意思決定のスナップショットドキュメントであり、現在のソースコードからは読み
取れない「なぜ」を表す
トレードオフや、選ばなかった選択肢とその理由
この情報は AI コーディングツールに「なぜこの実装方針にすべきか」を伝える効率的な手
段
コード生成だけでなく、
「今」のアーキテクチャドキュメントを生成 AI に品質高く書いても
らうためにも重要
Cline の Memory Bank のセットアップにも一連の ADR を渡して整理してもらってい
る
生成 AI 時代の ADR - 高品質なコンテキストとしての ADR
30