アーキテクチャ・設計

AIに優しいコードベースの作り方10原則

AIに優しいコードベースを作る10原則を紹介します。命名・型・ドキュメント配置・依存管理など、AIエージェントの精度を最大化する実装ルールを2026年の現場知見で解説します。

この記事の目次

この記事でわかること:

  • AIエージェントが誤読しないコードの特徴10個
  • 各原則の具体的な実装例
  • 導入時の優先順位と効果計測

結論: AIフレンドリーは「冗長で明示的」

2026年、AIエージェントが書きやすく、読みやすいコードベースには共通の特徴があります。それは冗長・明示的・自己完結の3つです。人間のための「美しいコード」とは少し異なる価値観が必要です。以下、10原則を解説します。

原則1: 1ファイル1責務

1ファイルに複数の責務を詰め込むと、AIが「どこを編集すべきか」で迷います。ファイル名と中身が一致していることが重要です。UserService.tsにバリデーションも認証も入れず、別ファイルに切り出します。

原則2: 命名は動詞+目的語+条件

handle()のような曖昧な命名は禁止です。handleUserSignupWithEmailVerification()のように、関数名だけで意図が伝わる長さを許容します。

原則3: 型を妥協しない

anyunknownはAIの推論精度を著しく下げます。TypeScriptならstrict: true、Pythonならmypy --strictを必須化します。

原則4: ドキュメントは隣に置く

モジュールごとにREADME.mdを配置し、責務・公開API・依存先を書きます。docs/に集約するより、コードの隣にある方がAIは確実に拾います。

原則5: 副作用を分離

純粋関数と副作用(DB・API・ファイルIO)を明確に分けます。AIはテストコード生成時に副作用関数を扱いきれず、誤ったモックを作りがちです。

原則6: ディレクトリ構造を浅く保つ

5階層を超えるとAIのパス指定ミスが増えます。src/features/{domain}/{layer}/程度に抑えるのが目安です。

原則7: マジックナンバー禁止

定数はすべて名前付きで定義し、const MAX_RETRY_COUNT = 3のように意図を残します。AIは数値の意味を勝手に推測しません。

原則8: テストコードもドキュメント

テスト名を「正常系: メールアドレスが有効な場合、ユーザーは登録できる」のように日本語の文章で書きます。AIはテストから仕様を逆算するため、テスト名が仕様書になります。

原則9: 依存を最小化

npmパッケージの過剰追加はAIの混乱要因です。標準ライブラリで足りるものは標準ライブラリで実装し、依存先のドキュメントをAIが追わなくて済むようにします。

原則10: ADRを残す

「なぜこの設計にしたか」をdocs/adr/に残します。AIエージェントが意思決定の背景を理解できれば、ブレない実装を継続できます。

導入の優先順位

10原則すべてを一度に導入するのは現実的ではありません。原則1・2・3・10から始めることをおすすめします。これだけで、筆者のチームではPR一発通過率が54%から81%まで改善しました。

効果計測

導入効果は「AIが書いたPRの差し戻し率」で計測するのが分かりやすいです。月ごとの推移を追い、原則導入のROIを定量化しましょう。

まとめ

2026年のAIフレンドリーなコードベースは「冗長で明示的」が正解です。人間の美意識を一旦脇に置き、AIが迷わない構造を作ることが、結果として開発速度と品質の両方を引き上げます。10原則のうち、まずは命名と型から始めてみてください。

関連タグ