はじめに
こんにちは、ENECHANGEエンジニアの木原です。
最近、KiroやTsumikiといったAI支援型テスト駆動開発フレームワークが話題になっています。
これらのフレームワークは充実したスラッシュコマンドを提供していますが、小規模な実装においては機能過多に感じることもあります。
本記事では、AI支援開発における基本原則と、それを小規模タスクでシンプルに実践する方法を紹介します。
大原則:いきなりAIに書かせない
生成AIを使った開発で最も重要な原則は、「いきなりAIに書かせない」ということです。
「とりあえずAIに何か書いてもらって後で修正する」というアプローチは避けるべきです。なぜなら、一度品質の低いコードが生成されると、それがコンテキストに含まれ、後続の生成結果にも悪影響を及ぼすからです。
目指すべきは 「一撃で最高品質のコードを出力させる」 ことであり、そのために入念な準備を行います。
AI支援開発の基本ワークフロー
高品質なコード生成を実現するためには、以下のフローで進めるのが基本になります。
1. 基本設計フェーズ
システム全体の構造や主要機能を大まかに定める「何を作るか」の定義
2. 詳細設計フェーズ
基本設計を基に具体的な実装方法やロジックを決める「どう作るか」の定義
3. タスク分解フェーズ
独立して実装・テスト可能な単位への分割
4. テスト駆動開発による実装
- ドキュメントからテストケースを作成
- エッジケースの網羅的なテスト
- レッド・グリーン・リファクタのサイクル
5. クリーニングフェーズ
- リンター・フォーマッターによるコードスタイルの統一
- 重複・冗長・未使用コードの削除
- 複雑すぎるコードのリファクタリング
小規模タスクでの実践例
小・中規模タスクでは、上記の基本型を守りつつ、スラッシュコマンドを使わずチャットベースでシンプルに開発できます。
実際に私は以下のフローで開発を進め、開発スピードとコード品質の両方が向上したことを実感しています。
実際のワークフロー
1. 要件の言語化
課題・やりたいこと・不具合原因・注意点などを思いつくままメモに書き出します。
- メモの冒頭に「実装するためのSOW*1をtmp/ディレクトリの下に生成してください」と記載
- ファイルパスが必要な箇所は明示的に指定(例:src/utils/validator.js)
2. SOWの生成
メモをClaudeにコピペし、SOWの初稿を生成します。
3. SOWのブラッシュアップ
生成されたSOWを確認し、不足や曖昧な点があればClaudeとやり取りして改善します。
4. TDDによる実装
「実装はt-wada*2の推奨する進め方に従ってください」という指示を追加し、テスト駆動開発で実装を進めます。
必要に応じてContext7 MCPを利用します。
5. 品質確認とリファクタリング
生成されたコードをレビューし、必要に応じてリファクタリングを行います。
まとめ
AI支援開発において重要なのは「準備に時間をかけて一撃で高品質なコードを生成する」ことです。小規模タスクであっても基本型を守ることで、効率的かつ高品質な開発が可能になります。
スラッシュコマンドのような高機能なツールも便利ですが、まずはシンプルなチャットベースのアプローチから始めることで、AI支援開発の本質を理解しやすくなるでしょう。
今後も実践を通じて得られた知見を共有していきたいと思います。
Source link
コメント