概要
https://bits.logic.inc/p/ai-is-forcing-us-to-write-good-code
詳細内容
## AIは私たちに「良いコード」を書くことを強いている
https://bits.logic.inc/p/ai-is-forcing-us-to-write-good-code
**Original Title**: AI Is Forcing Us To Write Good Code
AIエージェントに自律的なコーディングを任せるための「ガードレール」として、テスト網羅率100%や厳格な型定義といったエンジニアリングのベストプラクティスが、かつての努力目標から不可欠な要件へと変化していることを提唱する。
**Content Type**: 💭 Opinion & Commentary
**Language**: en
**Scores**: Signal:4/5 | Depth:4/5 | Unique:5/5 | Practical:4/5 | Anti-Hype:4/5
**Main Journal**: 86/100 | **Annex Potential**: 87/100 | **Overall**: 84/100
**Topics**: [[AIエージェント, テスト網羅率, TypeScript, 開発ワークフロー, 開発環境自動化]]
長年、テスト、ドキュメント化、小規模なモジュール分割、静的型付けといった「良いコード」の習慣は、多くの開発現場において時間の制約から省略されがちな「オプション(努力目標)」であった。しかし筆者は、AIエージェントの台頭によってこれらの習慣が「不可欠な要件」へと変化したと主張している。AIエージェントは自ら混乱を片付けるのが苦手であり、適切なガードレールがない環境では、かえって無秩序なコードを増幅させてしまうからだ。
筆者のチームが実践している最も象徴的なアプローチは「テストカバー率100%」の義務化である。筆者によれば、これはバグをゼロにするためではなく、AIが書いたすべての行の挙動を、AI自身に実行可能な例として証明させるための仕組みだ。網羅率が95%や99%では「どの行が未テストか」を人間が判断する認知的負荷が残るが、100%を維持することでその曖昧さが消失し、未テストの行はAIにとって明確な「TODOリスト」に変わる。この「フェーズの変化」こそが、AIのレバレッジを劇的に高める鍵であると説いている。
また、AIがコードベースを理解しやすくするための構造化も重要視されている。ファイル名をインターフェースの一部として捉え、意味のある名前を付けることや、コンテキストの切り捨てを防ぐためにファイルを小さく保つことが、AIのパフォーマンス低下を防ぐための具体的な戦略として挙げられている。
さらに、AIとの協業においては「高速・使い捨て・並列」な開発環境が不可欠だ。筆者のチームでは、`git worktree`を活用し、わずか数秒で新しい機能開発用の独立した環境を構築できる自動化スクリプトを運用している。テストスイートも高度に並列化され、1万以上の検証が1分以内に完了する。この高速なフィードバックループがあることで、初めてAIを「短いリード(綱)」で制御し、小さな変更と検証を絶え間なく繰り返すことが可能になる。
最後に、型システムについても、AIに対する「ソースコードとしてのドキュメント」として機能させるべきだと主張している。`UserId`や`WorkspaceSlug`といった意味論的な型名を使用することで、AIはデータの性質を瞬時に理解し、探索空間を絞り込むことができる。結論として、AI時代における「良いコード」への投資は、これまで避けられてきた「技術的負債への支払い」を強制されているに過ぎないが、その「税金」を意図的に支払うことで、AIの能力を最大限に引き出す理想的なコードベースを構築できるとしている。