- AIコーディングツールを使って、人間なら1〜2時間かかっていた変換作業を、15〜20分のレビュー程度まで短縮したい
- しかし、現状ではAIが生成するコードの品質が自分で書いたコードの90%にも達せず、実質的な助けになっていないように感じる
- そこで、AIをどう使えば生産性とコード品質を同時に引き上げられるのか、その方法が知りたい
AIでプログラミングの効率と品質を高めるための実践的なヒント集
1. 反復可能な作業にだけAIを集中的に投入する
- AIは 似た形の作業を何度も繰り返すとき に最も大きな効果を発揮する
- まず一度は人間が最高品質で実装し、それを基準となるサンプルとして使う
- その後、同じパターンの作業をAIに任せて大量処理する
- 思考や判断が必要な作業では、期待できる効率は急激に下がる
2. コーディング前に必ず計画を作る
- いきなりコードを生成せず、解決計画を先に作成する
- 計画段階で曖昧な点や疑問をすべて表に出させる
- 計画に納得できなければ実行段階に進まない
- 結果の品質はプロンプトよりも 計画書の明確さ に左右される
3. 作業単位を極端に小さく分割する
- ファイル1つ、コンポーネント1つ、関数数個といった単位で依頼する
- 「全体をリファクタリング」「idiomaticに改善」といった依頼は失敗確率が高い
- 構造設計は人間が行い、反復実装だけをAIに任せる
4. コンテキストは溜め込まず、こまめに初期化する
- 会話が長くなるほど、ルール順守と品質は急激に落ちる
- 1つのセッションでは1つの作業だけを処理する
- 方針が変わったら、新しいセッションでやり直す
- 長期作業は文書(plan.md など)で状態を保存し、再投入する
5. ルール文書は短く、機械的に作る
- CLAUDE.md / AGENTS.md は500〜1000トークン以内に保つ
- 宣言的な指示よりも、具体的で検証可能なルール を中心に書く
- よく間違えることだけを最小限記録する
- 残りはコードと自動チェックで強制する
6. テスト・リンター・ビルドをフィードバックループとして使う
- 「うまく作って」ではなく、通過条件を明確に示す
- テスト通過、ビルド成功、リンターエラー0件を目標に設定する
- フィードバックループがあってこそ、AIは自力で収束できる
- 既存の動作を検証するテストは、リファクタリングの難易度を大きく下げる
7. 実行中に修正せず、計画を直して再実行する
- 結果が気に入らなくても、コード修正の依頼を繰り返さない
- 計画書を修正したうえで、新しいセッションで再実行する
- 実行段階で方向転換すると、品質はすぐに崩れる
8. 例ベースでスタイルを学習させる
- 抽象的な「良いコード」という指示はほとんど効果がない
- Before / After の例を一緒に提供する
- 良い例と悪い例を明確に区別して示す
- 例を中心にルールを拡張する
9. 理解を放棄せず、責任の境界を明確にする
- AIが生成したコードは、必ず人間が理解しレビューする
- プロトタイプや低リスクのコード以外では、未レビューでの利用を禁止する
- セキュリティ・運用・長期保守のコードでは、理解が品質の前提になる
10. その作業がAIに適しているかを先に点検する
- 正解がなく、美的・構造的な判断が大きい作業はAIに不向き
- 視覚的な結果を自動検証しにくいUIリファクタリングは特に難しい
- 必要に応じて:
- 1段階目: 動作維持を目的とした機械的変換
- 2段階目: 人間が品質リファクタリングを実施
11. 期待値は「10%改善」から始める
- 最初から10xを期待しない
- 小さな改善を積み重ねる戦略のほうが、長期的にはより効果的
- 設計と品質基準を手放さないことが重要
1件のコメント
Hacker Newsの意見
Claude CodeチームのBorisです。いくつかコツを共有します
CLAUDE.mdに書いておくとよいです。Claudeはこのファイルを自動で読みます参考になれば幸いです
CLAUDE.mdに自動反映してくれますCLAUDE.mdをうまく整備すると効果が大きいですCLAUDE.mdは4〜5回くらいまではうまく機能しますが、その後は指示を忘れてしまいます。たとえば名前を「Mr. bcherny」と呼ぶように言っても、すぐ忘れます.clinerulesファイルを使えという回答を受けたのですが、CLAUDE.mdとの違いを知りたいです音声入力を活用すると、モデルが意図をより正確に理解します。500語ほどのプロンプトを話して伝えています。タイピングより、話すほうが思考が自然につながります。
「計画を立てて、質問があれば聞いて」と言うと、Claudeが実際に質問してきます。以前のコードスタイルを模倣するよう指示するのも効果的です
プロンプトにループ条件(loop condition) を含めるべきです。例: 「
yarn testが通るまで繰り返す」。LLMは結局のところツールを反復実行するエージェントなので、そのように扱うべきです
参考: Prompting the Agent Loop
私が作ったnori-profiles設定をおすすめします。
4か月間の実験の結果、Claude Codeの性能が目に見えて向上しました。
関連記事: Averaging 10 PRs a Day with Claude
会社でGolangの大規模コードベースを扱っています。Cursor、Claude Code、Gemini CLIなどいろいろなツールを使いましたが、ほとんどはコード量に圧倒されます。
しかしaiderははるかに制御しやすく、精度も高かったです。ファイル追加は手動ですが、ほぼ100%正確です。
最新のClaude SonnetやGemini 2.5 Proと組み合わせると最も正確です
Cursorで作業するときは、まず1つのルートをリファクタリングしながらルールファイルを生成させます。その後は別のルートで「refactor」と言うだけで済みます
残りのコンテキスト容量を常に意識し、必要なら早めにcontext clearするのがよいです
エージェントをチームメンバーのように扱う視点が重要です。お互いの強みと弱みを観察しながら、協業の仕方を調整する必要があります。
私は検証可能な問題や実験用コードにエージェントの力を集中させます。
Svelteはあまり詳しくありませんが、TDDスタイルの使い捨てテストでリライトを誘導するのがよさそうです。
ときには以前の誤った文脈を捨てて、新しいワークスペースでやり直すのが最善です
私はLLMを探索者(searcher) だと見ています。質問を小さく具体的にすると探索しやすくなり、訓練データから離れるほどエラー確率は高くなります。
新規プロジェクトならone-shotプロンプトだけでも十分可能です
私が愛用しているClaude Codeのツールセットはsuperpowersです
2週間使っていますが、ほとんど失敗したことがありません
私のAIプログラミング原則はシンプルです
核心は**「Less is more」**です。コンテキストウィンドウは新しいほどよく、500〜750語程度が理想です。すべての段階は検証可能であるべきです
Java関連の作業では、Claudeが継続的に方向を変えたり矛盾した提案をしてきます。ChatGPTのほうがずっとよいと感じます
「Idiomatic code」 を求めるなら、まず自分が考えるスタイルを細かく定義する必要があります。よい例・悪い例を小さく分け、それをOpus 4.5のPlanモードに入れて計画を立てたうえで実行します。一度で完璧にならなければ、計画文書を修正して再挑戦します。ジュニア開発者のように細かく指導しようとすると、かえって非効率です