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


関連記事

laravel logo

Laravelで認証APIを作る

1 はじめに1.1 条件1.2 JWTとは2 準備2.1 認証機能を有効化2.2 jwt-authのインストール2.3 コンフィグファイルの作成2.4 secretの作成3 Userモデルを修正4 g ...

rails

私たちのFactoryGirlとRspecの使用ルール その1

1 はじめに2 そもそもなぜ基本ルールなどを作成しようとしたのか?3 Rspec編3.1 describe、context、itの階層で使用する3.2 10個以上のテストレコードを作成したい場合は、ト ...

Go言語

[Go初心者]Interfaceについて学習

1 はじめに2 interfaceとは3 interfaceのメリット3.1 インターフェースを使うとコードの共通化ができる3.2 インターフェースを使うと実装を隠蔽することができる3.3 インターフ ...

laravel logo

LaravelのFacade(ファサード)とは? 何気なく使用していた裏側の仕組みを解説!

1 はじめに1.1 Facadeを使用しているクラス2 Facadeの仕組み3 Facadeの作成3.1 サンプルコードに必要な実装3.2 Serviceの作成3.3 Facadeクラスの作成3.4 ...

laravel logo

Laravelのバッチ処理を作る

1 はじめに2 環境3 artisanコマンド作成4 artisanコマンドをバッチとして登録する5 さいごに6 おすすめ書籍 はじめに こんにちは。webアプリにつきもののバッチ処理ですが、もちろん ...

フォロー

blog-page_side_responsive

2023年8月
 12345
6789101112
13141516171819
20212223242526
2728293031  

アプリ情報

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