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のWeb Application Framework

1 はじめに2 代表的なGoのWAF2.1 軽量なWAF2.2 フルスタックなWAF3 Ginを使ってみる3.1 クエリパラメータ+ポストパラメータ3.2 ファイルアップロード3.3 URLのグループ ...

laravel logo

LaravelのArtisanコマンドを自作する

1 はじめに2 コマンドの作成方法3 コマンドの実装3.1 文字列出力3.2 引数3.3 オプション3.4 入力を使用した対話型3.4.1 ask()メソッド3.4.2 secret()メソッド3.4 ...

rails

Railsでの非同期処理とDelayed Job

1 はじめに2 Active Job2.1 Active Jobの役割2.2 ジョブを作成する2.3 ジョブをキューに登録する2.4 コールバック2.5 例外3 Delayed Job3.1 設定3. ...

Rust入門してみた (構造体 / トレイト)

1 はじめに2 構造体2.1 メソッド2.1.1 関連メソッド2.2 トレイト2.2.1 構造体のフィールドの1つとして、トレイトのインスタンスを持つ場合2.3 derive属性3 おすすめ書籍 はじ ...

Stripe Connectで支払方法をクローンする

1 はじめに2 プラットフォームの顧客側の実装2.1 プラットフォームの顧客登録2.2 支払方法の登録3 支払方法クローンの実装3.1 顧客と支払方法のクローン3.1.1 支払方法のクローン3.1.2 ...

フォロー

blog-page_side_responsive

2023年8月
 12345
6789101112
13141516171819
20212223242526
2728293031  

アプリ情報

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