0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCodeでAmazon Q Developerを使う方法

0
Posted at

はじめに

某SI会社2Gのこんどうです。
前回の記事 で、Amazon Q Developerをコマンドラインから使用してみましたが、
今回はVSCodeに拡張機能として導入して使ってみようと思います。

VSCodeの拡張機能をインストール

手順は至って簡単で、VSCodeのサイドバーの拡張機能から「Amazon Q」を検索し、インストールするだけです。
スクリーンショット1.png

インストールが完了すると、サイドバーにAmazon Qのアイコンが表示されます。
そこからAWSのアカウント認証を行ったら準備完了です。

実際に使ってみる

今回はリファクタリングを試してみようと思い、こんなコードを用意しました。

example.py
def process_items(items):
    result = []
    for i in range(0, len(items)):
        if items[i] % 2 == 0:
            result.append(items[i] * 2)
        else:
            result.append(items[i])
    return result

右クリックメニューからいろいろできそうだったので、順番に試してみます。
スクリーンショット2.png

Explain(説明)

スクリーンショット3.png

自動でプロンプトが入力され、回答が得られました。
プロンプトが英語だったので英語で回答されたようです。

スクリーンショット4.png
日本語でお願いすると日本語で回答してくれました。
この後リファクタリングしてもらおうと思っていましたが、この時点でリファクタリングの提案もしてくれました。

毎回日本語でお願いと言うのは面倒なので、試しにこうお願いしてみます。
スクリーンショット5.png

Refactor(リファクタリング)

スクリーンショット6.png

日本語で回答してくれました。
修正方針は提示してくれましたが、実際にどう書き換えられるのかは提示されていません。

スクリーンショット7.png

修正内容を確認してから書き換えてもらいました。

example.py(リファクタリング後)
def process_items(items):
    return [item * 2 if item % 2 == 0 else item for item in items]

Optimize(最適化)

スクリーンショット8.png

先ほどのコードで十分かと思っていましたが、より最適化した案を提示してくれました。

example.py(最適化後)
def process_items(items):
    return [item * (2 - item % 2) for item in items]

Generate Tests(テストコード生成)

スクリーンショット9.png

example.py(テストコード生成後)
def process_items(items):
    return [item * (2 - item % 2) for item in items]

def test_process_items():
    assert process_items([1, 2, 3, 4]) == [1, 4, 3, 8]
    assert process_items([]) == []
    assert process_items([2, 4, 6]) == [4, 8, 12]
    assert process_items([1, 3, 5]) == [1, 3, 5]
    assert process_items([0]) == [0]

if __name__ == "__main__":
    test_process_items()
    print("全てのテストが成功しました")

実行してみると、無事にテストが通りました。

残念ながら...

「常に日本語で」というお願いは、セッション中しか保持されませんでした。
チャットを一度閉じるとまた英語で回答されるようになってしまいました。
チャットで「説明して」「リファクタリングして」と打った方が良さそうです。

おわりに

今回はシンプルなコードで試してみましたが、
もっと複雑なコードだとどうなるのか、今後試してみたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?