見出し画像

【AWS】 AI搭載IDE Kiroチュートリアルやってみた - バグ調査編(3) - |1日1ハンズオン Day 23

こんにちは、ぽめら です。
本記事は1日1ハンズオン企画、第23回です!
引き続きKiroのチュートリアルをおこなっていきます。今回は複数のファイルにまたがるバグ調査をKiroに依頼・修正をおこなうバグ調査編です👓



1.はじめに

引き続き、AI搭載IDEのKiroに触れていきます!

題材はKiro公式ドキュメント。
"Spirit of Kiro"というゲームで予め用意されているバグの修正を通じてKiroの使い方を学ぶハンズオンです。

前回はバグ調査チュートリアル第一弾に挑戦し、(主にチュートリアル以前の)バグを修正しました。今回はその応用編として、複数ファイルにまたがって修正が必要なバグに挑戦していきます!

ちなみに本編として進めたいチュートリアルは下記。

・Fixing a complex issue across multiple files

では、さっそく進めていきたいと思います。レッツハンズオン!


2.Kiroチュートリアル - バグ調査編(3) -

今回の主な流れは前回までとあまり変わらず、下記の通りです。

  • 問題点の確認

  • バグについてKiroに質問

  • Kiroに修正箇所の調査を依頼

  • 上記修正箇所に関係する影響調査を依頼

  • 修正

影響調査の依頼と修正は同時に行われる場合もあります(たぶん私が「Autopilot」をオンにしているからなんですが)。
バイブコーディングでも修正の管理は自分でおこなうことが重要!

2-1.問題点の確認

早速現状の確認から進めていきましょう。
ゲームでは、「E」アクション(アイテムを持ち上げる動作)が実装されています。しかし、壁際だと「E」アクションが動作しないときがある。

「E」アクションが表示されない
「E」アクションが表示される

ふむ、確かに。
想定される内容としては計算が上書きされてしまったり、アクションの制限条件に引っかかっているとかですかねぇ👀
(Kiro先生にお願いすること前提なので事前にコードは読んでません!)

2-2.Kiroに調査を依頼する

Kiro先生にバグ内容をチュートリアルシナリオ通りに相談してみましょう。

Sometimes when the player is closer to the wall than to an interactive object like an item or the chest, then the interact prompt does not appear over the interactive object.

壁際でプロンプトが表示されないことがあるんだ

ちなみにチュートリアルで織り込まれているバグは、"オブジェクトの優先順位として壁が認識されていること"です🧱

2-3.最善な修正案を自分で考える

一段階目の修正提案ではおそらく短絡的視点での修正が予想されるので、自分の頭で"その修正が最善かどうか"を考えて修正指示をすることが重要…ということもチュートリアルでは説明されています。

そして、追加プロンプトとして用意されているのが下記。

In #GameObject add a new required property `interactive`. In #updatePlayerProximity filter out non interactive objects All calls to #addObject throughout the code need to set interactive to true or false

"#"はコンテキストピッカーと呼ばれるKiroプロンプト機能。型・クラス・関数を指定することで文脈を正しく認識してくれるとのこと。

上記は、'interactive'要素をオブジェクトに実装することで、優先順位の判定要素を追加することをKiro先生に依頼しています。修正予定は"22箇所"

…え?なんでこんな説明口調で話しているのかって?

1つ目のプロンプトで想定されている及第点の修正をポン出ししてくれたからですよ!!!!(つまり掘り下げる必要がなかった😱)

指示してないのに'interactive'要素追加して
ちゃんと22箇所修正してる
判定が上手くいってそう

実際にコードを確認したところ、オブジェクトに'interactive'が実装されており、その判定文も追記されていました。処理詳細の善し悪しを今回私の方では判断できなかったわけですが、さすがKiro先生…。

ここまでで、今回想定していたチュートリアル「Fixing a complex issue across multiple files」は終了です!


3.まとめ

今回は Kiro のチュートリアルを進めて、複数ファイルにまたがるバグ調査にチャレンジしました。

Kiroの優秀さに引き続き驚きを感じているわけですが、チュートリアル上のコーディングに関する示唆も私としては重要さを感じたのでメモ。

  • AIが生成した内容を鵜呑みにしない🦆
    もはや暗黙の共通知だと私は勝手に思っているのですが、"AIで出力された内容=全て正しい"ではないんですよね。自分の頭も使うの大事

  • コンテキストピッカーを適宜利用する🔍
    Kiroプロンプトで動作するこのコンテキストピッカー。他のAIエディタでも類似はあると思いますが、こうした機能を使いこなしたいですね。

  • ネーミングは重要✍️
    コーディング一般論としても非常に重要なこの要素。生成AIでの解析も前提にすると、より一層わかりやすい・類推しやすいネーミングが大事だと感じました。

次回チュートリアルは"Vibe refactoring"に挑戦します。
おそらくリファクタリングをAIに任せることだと思いますが、楽しみです☺️

というわけで、今日はここまで!

ではまた明日👋


4.参考リンク

・AWS Kiro紹介ページ

・Kiro公式サイト

・Kiro公式はじめの一歩的なドキュメント

・複数ファイルのバグ調査編チュートリアルドキュメント


いいなと思ったら応援しよう!