はじめに
「AI IDE AWSのIDE「Kiro」って話題になってますね」の記事を書いてから、1カ月ほど経過、、、
Kiro
から連絡を頂けたので、ダウンロード&インストールしてみたいと思います。
Hi, you're off the waitlist!
「Kiro」からご連絡を頂けました。
ダウンロード&インストール
ダウンロード
インストール
※VsCode
から拡張をインストールしてくれている間に、「Specs(仕様駆動開発)」を記載
Specs(仕様駆動開発)
Specの3つのフェーズが超大事!
- Requirements(要件)フェーズ - 「何を作るか」を明確に
- Design(設計)フェーズ - 「どう作るか」を設計
- Implementation(実装)フェーズ - タスクに分解
まずは使ってみる
下準備
- GitHubと連携
- GitHub にリポジトリを作成: java_springboot_api_kiro_sample を作成
- リポジトリを Clone
- Clone したプロジェクトをローカルからオープン
Let's build
- 「Vibe」または「Spec」
- バイブ:まず対話、次に構築。アイデアを模索し、ニーズを発見しながら反復する
- 仕様:まず計画を立て、それから構築する。コーディング開始前に要件定義と設計を行う
- 今回は「Spec」を選択
- IN「JavaのSpringbootでAPIを作ります。このAPIは、ユーザーの一覧を取得します。」
- Kiro「JavaのSpring BootでユーザーAPI一覧を取得するAPIを作成しますね。まず、この機能の要件を整理していきましょう。」
- IN「OK」(OKって言葉じゃないけど) ※プロジェクト直下の
.kiro/specs/user-list-api
配下にファイルが生成される - Kiro「Created requirements.md」
- IN「OK」(OKって言葉じゃないけど)
- Kiro「Created design.md」
- IN「OK」(OKって言葉じゃないけど)
- Kiro 「Created tasks.md」
1.IN「DBは不要でプログラムに直接返却データを記載してください」 - Kiro「Accepted edits to tasks.md」「9 edits to file design.md」
- Kiro「実装を開始するには、tasks.mdファイルを開いて、各タスクの横にある「Start task」ボタンをクリックしてください。」
-
.kiro/spacs/user-list-api/tasks.md
を開いて、上から順番にStat task
をクリック- Set up Spring Boot project structure and dependencies
- Create User data model
- Implement in-memory data storage
- Implement business logic layer
- Create REST controller
- Implement error handling
- Write controller unit tests
- Create integration tests
- Finalize application configuration and verification
- ローカル環境に Maven が入ってないため、Mavenコマンドでエラー
- IN「実行テストは不要です。まずはプログラムだけ作りたいです」
- 期待通り一旦、プログラムだけが自動生成
- IN「User-list-apiを利用して、表示を行う画面をVue.jsで追加してください」
- Kiro「Vue.jsフロントエンドの追加が完了しました!」
- IN「DevContainaerで実行するように変更してください」
- Kiro「DevContainer設定が完了しました!」
- 【問題】実行しようと「Dev Containers」の拡張機能をインストールしようとしたけど、表示されない
- とりあえず、Dev Containers拡張機能なしでの実行(
> .\scripts\start-docker-dev.ps1
)- コンテナが立ち上がらないなど、問題をいろいろKiroがTry&Errorを続ける。。。
- なんども修正を繰り返しているので、過去に "jules" で作成した `Dev Container を参考して作成
-
Kiro
では "DevContainer" を諦めて、VsCode
で開いて、DevContainerを起動 - 全体の起動スクリプトでは起動しなかったので、バックエンドを起動、フロントエンドの中身のコマンドを1つずつ起動
結果の画面表示
最終的な Specs
おわりに
以前利用した「AI エージェント Julesって?とりあえず、使ってみる」から比べると同様の内容を作成するのに、2倍以上の時間となった。
日本語チャットの理解とプログラム解釈が、Jules
の方が高いように思える。
また、DevContainaerがIDEから利用できない?(やり方が悪い?)が、非常にツライ。実際の開発では、DevContainaerは必須なので、Kiro
を使いつつ VsCoce
も使うのが必須であれば、他の選択肢になりそう。
ただ、Kiro
のメリットは「Spec」なので、ここをもっと使いこなせるように改善していきたい!
参考(感謝)