BackEnd

CodeWhispererを使ってみた

投稿日:

はじめに

AWSからコード生成サービスのCodeWhispererが一般公開されたので使ってみたいと思います。

CodeWhispererとは

AWSのコード自動生成サービスです。
個人利用向けのIndividualと組織利用向けのProfessionalが用意されています。
生成結果自体は両方で変わらないようですが、Individualは無料で利用できます。
今回はJetBrainsのPHP Stormで、CodeWhisperer Individual(個人利用)を使用します。

導入

はじめに、PHP Storm上のプラグインページからAWS ToolKit を インストール します。

IDE上でAWS ToolKitを開いてDeveloper ToolsからCodeWhispererの利用開始します。詳しくは、公式を参照してみてください。(手順がスクショ付で掲載されています。)

途中、AWS Builder IDを新規作成する様にポップアップが表示されるので指示通り作成します。

AWS Builder IDは、AWSで開発する個人に紐づく新しいプロファイルです。AWSアカウントに紐づくIAMユーザーとは別に、個人に紐づくもののようです。

現在は、他にAmazon CodeCatalyst や AWS re:Postのサービスに利用される様です。

AWS Builder ID作成後にPHP StormでCodeWhispererの使用確認を行なうとポップアップが閉じられコード生成が出来る様になります。

使い方

コメントを書くか関数名を書くだけでコード生成がされます。

1行ずつコード生成され、候補がいくつかある場合は選択出来ます。

Enterで候補から選択して改行されると次のコードが生成される形です。

また、Macの場合なら、option + C のショートカットでもコード生成を行う事が出来ます。

PHP言語で試しにやってみます。

何回か試しましたが、英語で書かれていた方が生成されるコードの精度が高そうですが、生成結果コードは怪しいものも結構あるという印象です。

また、今回はuse文や他コードが一切無い状態で試してますが、この辺の有無でも生成結果が変わるので実際の精度はまた変わりそうです。

データの取り扱い

詳細は公式の通りですが、一部抜粋すると

・Amazon CodeWhisperer Individual は、コードスニペット、コメント、カーソルの位置、IDE で開いているファイルの内容などのコンテンツを入力として使用して、コードの提案を提供します。

・IDE 内で AWS Toolkit の [Share CodeWhisperer Content with AWS] (CodeWhisperer コンテンツを AWS と共有) 設定を調整することで、AWS がサービス改善のためにお客様のコンテンツを保存および使用することをオプトアウトできます。

・クライアント側のテレメトリや使用状況のメトリクスを収集して使用する場合があります。IDE 内で AWS Toolkit の [Telemetry] (テレメトリ) 設定を調整することで、このデータ収集をオプトアウトできます。

とあります。

コード生成処理に既存のコード内容が利用されるようですが、設定する事でこれらのデータをAWSに保存しない事になっているようです。

また、生成コードの選択結果や利用の有無などのメトリクスデータの共有するしないも設定出来るようです。

さいごに

CodeWhispererを使ってみました。
1行ずつコード生成するのは結構もっさりする印象があり、また日本語コメントのみから生成するとあまり精度も高くなさそうですが、コード書いてる途中でも生成出来るのでオートコンプリート的な使い方も出来そうです。
これからクオリティは上がっていくと思うので期待して待っていたいと思います。

おすすめ書籍

AWSの基本・仕組み・重要用語が全部わかる教科書 (見るだけ図解) AWS運用入門 押さえておきたいAWSの基本と運用ノウハウ

blog-page_footer_336




blog-page_footer_336




-BackEnd
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

Go言語

Go 1.23のos.CopyFSについて

1 はじめに2 os.CopyFSでディレクトリをコピーする2.1 コードサンプル2.2 os.CopyFS3 さいごに4 おすすめ書籍 はじめに Go 1.23で os パッケージに追加された Co ...

Go言語

go 1.24の tool directive でツールを管理する

1 はじめに1.1 これまでのツールの管理方法2 tool directiveを使ってツールを管理する2.1 ツールの追加2.2 ツールの削除3 go tool コマンドでツールを実行する4 さいごに ...

laravel logo

【Laravel】認証を自作して学ぶguardとmiddleware

1 はじめに1.1 認証処理の仕様2 独自の認証処理の実装2.1 Modelの実装2.2 UserProviderの実装2.3 Guardの実装2.4 Middlewareの実装2.5 Handler ...

Go言語

Go 1.18のWorkspacesモードでマルチモジュール化

1 はじめに2 マルチモジュール構成2.1 非Workspacesモードの場合2.2 Workspacesモードの場合3 go workコマンド3.1 init3.2 edit3.3 sync3.4 ...

Stripe Connectを使ってCheckoutを利用した継続課金を実装

1 はじめに1.1 Checkoutを使う場合の動線2 決済画面への遷移2.1 マイグレーション2.2 Checkout Sessionの作成3 決済完了後の制御4 おまけ4.1 ローカルでWebho ...

フォロー

blog-page_side_responsive

2023年8月
 12345
6789101112
13141516171819
20212223242526
2728293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。