掲載済み (2025-12-13号)
#085 767文字 • 4分

## 実践フルAIコーディング

日本語

掲載情報

概要

https://zenn.dev/erukiti/articles/2512-full-ai-cofing

詳細内容

## 実践フルAIコーディング https://zenn.dev/erukiti/articles/2512-full-ai-cofing LLMの根本的な歪みを理解し、人間による絶え間ない努力と徹底した環境整備によって、フルAIコーディングの品質と持続可能性を確保する実践的ノウハウを提示します。 **Content Type**: 📖 Tutorial & Guide **Language**: ja **Scores**: Signal:5/5 | Depth:5/5 | Unique:5/5 | Practical:5/5 | Anti-Hype:5/5 **Main Journal**: 100/100 | **Annex Potential**: 100/100 | **Overall**: 100/100 **Topics**: [[AIコーディング, LLMの限界, 環境構築, テスト戦略, AIデトックス]] この記事は、著者が9ヶ月にわたる実践を通じて得た、フルAIコーディングにおける思考法とノウハウを凝縮したものです。本格的なプロダクト開発でメンテナンス性を重視するフルAIコーディングにおいて、LLMの持つ根本的な歪みと、それに対する人間の不断の努力の重要性が強調されています。 著者は、LLMを「極めていびつな汎用知性」と定義し、その非決定的振る舞い、与えられた情報を無批判に正とする性質、勝手な解釈、知識の活用不足、要約能力の低さといった問題点を詳細に解説しています。これらの問題により、AIが生成するコードは統一感が欠如し、人間が予測できない方法でバグを生み出す可能性があると指摘しています。 こうした課題に対し、著者は以下の実践ノウハウを推奨しています。 1. **環境整備の徹底**: フルAIコーディングにおいては、学習データが豊富でLLMが最も得意とするTypeScriptを第一に推奨。Node.js LTS, pnpm, eslint, vitest, husky, Reactなどの技術スタックが推奨されます。マイナーな言語やライブラリはLLMの取り扱い能力が低く、品質低下を招くため避けるべきです。 2. **ESLintの活用**: LLMが一定確率で質の悪いコードを生成することを前提とし、eslintの厳格な設定が必須です。特定のルール(enum禁止、class原則禁止など)を設定し、一貫性を保ちます。 3. **レイヤー構造の導入**: 知識の明確な分離と依存方向の一方向化を可能にするレイヤー構造(DDD, クリーンアーキテクチャなど)は必須であり、`eslint-plugin-boundaries`で強制します。特にI/Oや外部パッケージに対する腐敗防止層が重要です。 4. **結合テストの重視**: 人間がプログラミングしていた時代のテスティングトロフィーを忘れ、AIコーディングでは結合テストを最重要視します。LLMは単体テストは得意なものの、全体像を捉えるのが苦手なため、API一本ごとの結合テストが生命線となります。 5. **コメントとTSDocの手厚さ**: LLMがコメントをサボりがちであるため、TSDocを使い、目的・内容・注意事項を詳細に日本語で記述させ、プロジェクト外のジュニアエンジニアでも理解できるレベルを指示します。テストコードへのコメントも過剰なほど手厚く書くことが求められます。 6. **リファクタリングの推進**: コード変更とテスト変更の分離を徹底し、頻繁なリファクタリングを推奨します。 7. **設計段階での見積もり**: AIにタスクの見積もりをさせ、編集対象ファイル、DBテーブル、I/Oなどを明示させることで、AIの勝手な解釈や過剰設計を防ぎ、プルリクエストのサイズ感を管理します。 8. **人間によるレビューの徹底**: AIはランダムに「毒」をまき散らすため、無垢なジュニアエンジニアに接するように、徹底的に質問攻めにし、わずかな違和感も見逃さない「お局ビリティ」によるレビューが品質保証の鍵となります。 9. **素振りによる経験蓄積**: レイヤー構造や結合テストが意味を持つ規模のアプリを定期的に個人開発し、経験をプロダクト開発にフィードバックする重要性を説きます。 10. **AIデトックスの習慣化**: フルAIコーディングは、コードレビューのストレス、情報過多、AIとの対話のイライラなど、尋常ではない精神的負担を伴います。定期的なAIデトックス(メタ認知、五感刺激、運動、副交感神経刺激)を通じて、心身の健康を保つことが、質の高いコードを書く上で不可欠であると結論付けています。 著者は、この「暴走する知性」を制御しプロダクト開発を進めることは正気の沙汰ではないとしつつも、自身の血と汗と涙の結晶であるノウハウを共有することで、他の実践者の助けになることを願っています。