概要
https://techblog.kayac.com/2025/12/24/100000
詳細内容
## AIエージェントにSOLID原則を叩き込んでやろうじゃないか
https://techblog.kayac.com/2025/12/24/100000
AIエージェントに詳細なSOLID原則のガイドラインをコンテキストとして与えることで、生成コードの設計品質と保守性を劇的に向上させる手法を提案する。
**Content Type**: 📖 Tutorial & Guide
**Language**: ja
**Scores**: Signal:4/5 | Depth:4/5 | Unique:3/5 | Practical:5/5 | Anti-Hype:4/5
**Main Journal**: 85/100 | **Annex Potential**: 78/100 | **Overall**: 80/100
**Topics**: [[AI Coding Agents, SOLID Principles, Claude Code, Software Architecture, Prompt Engineering]]
カヤックの新卒1年目のエンジニアによる、AIエージェント(Claude Code)の出力品質を劇的に向上させるための実践的なアプローチの紹介である。著者は、AIが仕様通りのコードを出力する一方で、その設計品質を人間がただ漫然とレビューするだけでは、エンジニアとしての自身の成長が停滞し、将来的に淘汰される危機感を感じたと述べている。この課題を解決するため、著者は「SOLID原則」をAIに徹底的に叩き込むことで、AIを単なる作業代行者から、高品位な設計を共創するパートナーへと昇華させる試みを行った。
具体的な手法として、SOLID原則の5つの各要素(単一責任、オープン・クローズド、リスコフの置換、インターフェース分離、依存性逆転)について、厳守すべきルールや「違反を検知する警告サイン」を定義した5つのMarkdownファイルを用意し、Claude Codeのコンテキストとして読み込ませている。例えば、単一責任の原則では「『そして』『また』という説明が必要なクラスは分割対象」といった具体的な判定基準を与え、依存性逆転の原則では「具象クラスを直接インスタンス化しない」といった実装ルールを課している。
このアプローチの有効性は、ラーメン屋の営業をモデル化した実装例で顕著に示された。原則を指定しない場合、AIは全てのロジックを一箇所に集約させた巨大なクラスや、拡張性の乏しい条件分岐の羅列を生成した。対して、原則を叩き込んだ場合、AIはドメイン層やアプリケーション層に分離されたクリーンアーキテクチャに近い階層構造を自律的に構築し、依存性注入(DI)を活用した疎結合なコードを出力した。
著者は、AIに任せきりにすることで発生しがちな技術負債のリスクを、プロンプトやコンテキストの設計によって軽減できると主張している。さらに、AIが生成した高度な設計を人間が読み解くプロセス自体が、ジュニアエンジニアにとっての深い学びになり、設計思想の習得を加速させるという副次的なメリットも強調している。AI時代の開発において、ツールを「使いこなす」とは、単にコードを書かせることではなく、質の高い設計思想という「ガードレール」をAIに正しく提示することにあるという、本質的な知見を提供している。