1. 合理的な期待値を設定する (Set reasonable expectations)
- 主な内容:
LLMは本質的に高度な自動補完ツールであることを認識する必要があり、全面的に依存するとエラーや不正確な結果が生じる可能性がある。
- 活用法:
自分のコーディング能力を補完する補助ツールとして活用し、過度な期待を捨て、ミスを検証する姿勢が必要である。
2. 学習データの打ち切り時点を考慮する (Account for training cut-off dates)
- 主な内容:
モデルが学習したデータの新しさには限界がある可能性があるため、最新ライブラリや技術の変化には注意が必要である。
- 活用法:
安定性と汎用性が実証されたライブラリの利用を優先し、最新技術が必要な場合は自分で直接例を提示して補完する。
3. 文脈の重要性 (Context is king)
- 主な内容:
会話のすべての履歴(プロンプトと応答)が結果に影響するため、文脈管理が重要である。
- 活用法:
複雑な作業では既存コードを会話に含めてモデルが参照できるようにし、必要に応じて新しい会話にリセットする。
4. 複数の選択肢の提示を求める (Ask them for options)
- 主な内容:
初期の調査段階では、LLMに複数の実装オプションや例を求め、可能な選択肢を探る。
- 活用法:
「どのような選択肢があるか?」といった質問で技術的な可能性を確認し、その後で選んだ案をもとに具体化する。
5. 何をしてほしいかを正確に伝える (Tell them exactly what to do)
- 主な内容:
本番コードを書く際には、詳細で明確な指示を出し、求める機能を正確に実装するよう導く。
- 活用法:
関数シグネチャ、使用すべきライブラリ、例外処理などの具体事項を指示し、LLMが要件に沿ってコードを書けるようにする。
6. 書かれたコードは必ずテストする (You have to test what it writes!)
- 主な内容:
LLMが書いたコードであっても、実際に動作するかどうかを必ず確認する必要があり、自動テストと手動検証が求められる。
- 活用法:
生成されたコードに対して pytest などのテストフレームワークを使い、正常に動作するかを検証する。
7. 対話的なやり取りを維持する (Remember it’s a conversation)
- 主な内容:
LLMとのやり取りは一回限りではなく、反復的な対話を通じて結果を改善できる。
- 活用法:
初期結果が不十分な場合は、追加の指示やフィードバックによってコードをリファクタリングし、改善する。
8. コードを実行できるツールを活用する (Use tools that can run the code for you)
- 主な内容:
実行可能なサンドボックス環境や統合開発ツールを活用して、LLMが書いたコードを実際に実行してみることができる。
- 活用法:
ChatGPT Code Interpreter、Claude Artifacts など、安全な実行環境を提供するツールを使ってリアルタイムに検証する。
9. 「バイブコーディング」で学ぶ (Vibe-coding is a great way to learn)
- 主な内容:
反復的で自由な実験を通じてLLMの活用法を学び、多様なアイデアを素早く実装してみる方法である。
- 活用法:
簡単な機能から始めて、反復的な試行と改善を通じてLLMの限界を把握し、自分のコーディング感覚を高める。
10. Claude Codeを活用した詳細な例 (A detailed example using Claude Code)
- 主な内容:
実際のプロジェクト例を通じて、Claude Codeがどのように具体的な要件を反映して作業を進めるかを示す。
- 活用法:
段階的なプロンプトとフィードバックを通じて、PythonスクリプトやHTMLページの生成など複合的な作業を行う過程を参考にする。
11. 人間の介入の必要性 (Be ready for the human to take over)
- 主な内容:
LLMが生成したコードにもエラーや不適切な部分があり得るため、最終確認と修正は必ず人間が行う必要がある。
- 活用法:
LLMが見落とす細部や微妙なエラーを自分で点検し、補完して完成度の高い成果物に仕上げる。
12. 開発速度の最大化 (The biggest advantage is speed of development)
- 主な内容:
LLMを活用すれば、プロトタイプ作成や反復的な作業の速度を飛躍的に高められる。
- 活用法:
初期アイデアの検証や簡単なコード作成にLLMを積極的に活用し、開発時間を短縮する。
13. 既存の専門知識を増幅する (LLMs amplify existing expertise)
- 主な内容:
すでに熟練した開発者であれば、LLMを活用することで自分の専門性をさらに強化し、生産性を高められる。
- 活用法:
自身の経験と知識をもとにLLMへ明確な指示を出し、より精緻な成果物を引き出す。
14. 追加機能: コードベースに関する質問への回答 (Bonus: answering questions about codebases)
- 主な内容:
LLMはコードベースに関する質問に答えたり、コードの特定部分を説明したりする用途にも有用に活用できる。
- 活用法:
コードの構造や特定機能について質問し、関連する説明やドキュメントの生成に役立てることができる。
1件のコメント
この方のブログは本当にすごいですね。ありがとうございます。