【AWS】Amazon Q Developerで爆速コーディング!!

## :muscle: はじめに
 amazon Q Developperの機能を初学者向けに紹介します。
 amazon Q は2025年1月時点で日本語非対応なのですが日本語でも使える範囲で紹介します。
## :beginner: 対象購読者
- amazon Q って何？美味しいの？という方
- 生成AIを使って効率的にプログラミングを実施してみたい方
- amazon Q Developperについて興味ある方
- VScode愛用者
- RPGが好きな方!! 
## :one: AmazonQとは？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/6bb9d843-b53c-1b97-4ed8-02ccff08afc9.png)
安全にお手軽にAIを使えるサービスになります。チャットGPTと異なる点としては一般的な回答ではなく、会社や個人の独自の情報(プライベートなデータと言ったりします)から回答を生成することができる点が異なります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/5c11017b-a36b-212c-fdb4-9e633e17a03a.png)
主にこのようなサービスがあります。今回はamazon Q Developerでコーディングを効率的に進められる機能をご紹介します。

:::note warn
※2024/12月時点で日本語未対応ですが、一部日本語でも使えるのでそのあたりをメインに紹介します
:::


## :two: Amazon Q Developerの料金と機能
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/2391e9c5-63b9-1689-6c12-07f3f9b1c82a.png)

https://aws.amazon.com/jp/q/developer/pricing/

無料版で十分使えると思いますのでとりあえずをまず無料利用枠を使ってみて下さい:point_up:

![image.png ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/61ca4ed3-0b51-6a1e-c21f-3e51837b4d02.png)
色々な機能があって混乱しそうですが、今回は日本語でも使えるリアルタイムコード生成で爆速コーディングの例を紹介したいと思います。他の機能を知りたい方は素敵にまとめてくださる方がいらっしゃいましたのでそちらをご参照ください。

https://qiita.com/har1101/items/b303e9105b29b9bdd525

https://qiita.com/ymd65536/items/9ab106e931300577fe73

## :three: セットアップ 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/f091b3e4-6bcc-a624-22da-4a00292b936f.png)

:::note warn
AWS ビルダー IDが必要となります（メアドだけあれば作れます）
https://docs.aws.amazon.com/ja_jp/signin/latest/userguide/sign-in-aws_builder_id.html
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/abbc16e3-40ab-b59a-f16c-1ab0f7b4bb81.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/a94bd7d6-ec0e-d950-c9a7-fe8554322d5d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/3c9899bd-ff6e-5ee3-ba03-f173e94fc99f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/05553726-60ea-33e9-b182-ae798b61f87c.png)


## :four: 早速使ってみよう！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/79d95294-8e71-cbfe-0679-c8aa6ad21e4f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/7524adc9-d09e-fdcc-6891-1d693e1962dd.png)
普通にコーディングしてたら勝手にコードの続きを提案してきます。「いや...違うし」と思ったら左右で違う候補も選べますし、無視してコーディングしても良いのです。コーディングの前後を考慮した提案をしてくれるので、命名規約等も考慮してくれるのが素晴らしいです:heart_eyes:

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/6a4ab49a-6a58-941f-6cab-a5746b52d534.png)
作りたい内容をコメントに書いてEnterするとメソッドごと丸ッと提案してくれたりもします:point_up:

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/84965c40-b6d1-d934-945a-0698583b1aea.png)
テスト用のデータとかも数秒でパパっと提案してくれます:thumbsup:

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/e31f7ced-10c0-5d33-10df-2189d476ffb2.png)
Iacも作ってくれましたCDKやTerraformでも提案してくれます。
どの形式で作るか指示しないといきなりdockerの定義を提案してきたりするので注意:warning:

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/4c032c49-27e1-50c1-2ec5-25e862b9077b.png)
「Ctrl＋I」で修正指示も聞いてくれます。ただ、長文の指示には対応してくれないみたいです:sweat_smile:

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/aa1419a3-1fef-5a38-4b6f-c1d84f1678ef.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/7cce6d4b-e294-b518-7220-259948a673c1.png)
コードの説明や、改修案等他にもいろいろな便利機能があるのですが、日本語未対応なので説明は割愛します…

## :five: アンチパターン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/25a9000f-840c-9380-1f8e-698d968f9b90.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/b3654404-61f2-e23a-b14c-35a94e096540.png)
「そんな奴おらんやろ！」と思うかもしれませんが、実際いるんです:innocent:
あなたも気づかないうちに生成AI依存になってるかも...:ghost:

## :six: 俺的ベストプラクティス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/61fc389c-902c-720b-ea9f-841050425219.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/18615174-a127-2e3c-db51-f2b1233db379.png)
この手法は爆速どころが「爆遅」です:turtle::turtle::turtle::turtle:
でも、長ーい目で見ると効率的だと信じてこのようにしてます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/2f0978d2-ea54-b4af-7d85-9d8c03928fef.png)
こっちは慣れると本当に「爆速」です:bullettrain_side:

## :seven: 日本語化まだぁ？ 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2933489/135ca70c-3b9a-cf12-17b7-b2b7b6a2ab48.png)
amazon Q businessは日本語対応するとのことで今後developerも日本語化対応されることを楽しみにしております。日本語対応したらもっといろいろな事試してまた投稿したいと思います:thumbsup_tone1:

2025/5/1追記
日本語化来ました
https://dev.classmethod.jp/articles/amazon-q-developer-japanese-language-support-ide-cli/

## :ramen: 〆
今回はAmazon Q Developerのリアルタイムコードをご紹介しましたが「生成AIくん」なかなかのクセモノですね:smile:

「おっ、やるじゃん！:grinning:」と褒めてあげたくなる時もあれば、
「おいおいおい！お前、どこ走っとんねん:rage:」と全力でツッコミたくなることも…
指示の出し方ひとつでその精度がガラリと変わってきます。

例えるならAIくんはとても賢い新人タクシードライバー:beginner:みたいなもので、
こちらが「目的地」を具体的に伝えるとようやくスムーズに走り出す感じです:taxi:

とはいえ、生成AIくんもこれからどんどん成長していくはず:grin:
相棒（バディ）として一緒に成長して最強の開発コンビを目指していきたいです:two_men_holding_hands: