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のブラウザ認証

1 はじめに1.1 認証機能の概要2 Controller3 SessionGuard3.1 fireAttemptEvent3.2 retrieveByCredentials3.3 hasValid ...

PHPerだけどKotlinを勉強したって良いよね その1〜クラス編〜

1 はじめに2 インターフェース2.1 基本2.2 デフォルト実装付メソッド2.3 同じメソッド名を持つ複数のインターフェース3 修飾子3.1 open3.2 abstract4 可視性修飾子5 さい ...

laravel logo

Laravelの認可機能Gateを使ってみた

1 はじめに2 やる事3 Gate3.1 登録3.2 利用4 Policy5 ミドルウェアでの使用6 さいごに7 おすすめ書籍 はじめに Laravelには認可機能を簡単に実装出来るGateという機能 ...

laravel logo

[Laravel] middlewareでHTTPリクエストの前後に処理を入れる

1 はじめに2 middlewareとは3 実装3.1 middleware作成3.2 コード実装4 middleware定義4.1 常に呼び出す4.2 特定のURLにアクセスした時のみ呼び出す4.3 ...

rails

Rails5.2+Pumaのデプロイ設定

1 はじめに1.1 環境2 Pumaとは?2.1 Unicornとの比較2.2 Pumaのスレッド3 Pumaの使い方4 デプロイ設定4.1 Gemを追加4.2 Capfileの設定4.3 deplo ...

フォロー

blog-page_side_responsive

2023年8月
 12345
6789101112
13141516171819
20212223242526
2728293031  

アプリ情報

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