GitHub Copilot を最大限に活用する

Dec 01 2022
AI コーディング アシスタントは現在流行しています。それらを最大限に活用するにはどうすればよいですか?
GitHub Copilot がリリースされたとき、すぐに試してみました。主張は真実であるにはあまりにも良いようでした。

GitHub Copilotがリリースされたとき、すぐに試してみました。主張は真実であるにはあまりにも良いようでした。

私が見つけたのは逆で、宣伝されているよりも優れていました. 私はそれに圧倒されたので、それについてツイートすることさえしませんでした. 無料で配るにはメリットが大きすぎると思いました!

Copilot が非常に影響力があることを知ったので、2021 年のチーム リトリートで、CTO プレゼンテーションの全セクションを Copilot に捧げました。Copilot の使用は、Infinite Red の他のツールと同じくらい「必須」になりました。それは大きなゲームチェンジャーでした。

コーディング ワークフローでの Copilot の機能

私は通常の状況ではかなり速いコーダーです。副操縦士は私の速度を 2 倍にします。

私は軽度の ADHD を患っており、集中力を維持することが最大の課題の 1 つです。「フロー状態」になると止まらない。これに苦労しているのは私だけではないと思いますが、そうでなくても、「スレッドを失う」ような瞬間があり、促す必要があるかもしれません.

私の理想的なコーディング フローには常にペアリングが含まれていることがわかりました。良いペアは、私を集中させ、次に何が必要かを予測し、提案を提供し、辛抱強く対応してくれます。Copilot は、その役割を自動的に果たします。いくつかのコードを書き、脳が別の話題に切り替えようとする特定のポイントに到達しますが、そのわずかな一時停止で副操縦士が提案をポップアップ表示するのに十分であり、こうして私の集中力が再び引き出されます。

コパイロットの制限

よくある間違いは、Copilot から悪い結果を得て、ツールのせいにすることです。Copilot は、ほとんどの場合、必要な方法で正確にコードを作成するわけではありません。コンテキスト、手がかり、およびアクセスできるトレーニング データの量に基づいて最善を尽くします。また、他のツールと同様に、ツールを最大限に活用するには、その使用方法を学ぶ必要があります。

Copilot を最大限に活用する方法について説明しましょう。

コンテキストの先頭のコメントを書く

ペア プログラマーにとっても、AI コーディング アシスタントにとっても、コンテキストは重要です。関数が何のためにあるのか、どんな引数をとるべきか、何を返すべきなのかについて、平易な英語で良い考えを与える明確なコメントを書くことから始めましょう。コメントがあいまいな場合は、あいまいな結果が予想されます。

より良いコメントは、Copilot により良い情報を提供します:

必要な結果が得られるまで、ためらわずに戻ってコメントを微調整してください。もちろん、コードを手動で編集することもできますが、説明的なコメントを書くのが上手になれば、将来のコードでもより良い仕事をするでしょう.

この場合、「型付き関数」を追加すると、関数の引数に型が導入されました。

これらのコメントは、コードをそのまま読むことはできますが、必ずしも人間がコードを読むためのものではありません。私はいつも作業が終わった後、人間の読者のためにそれらを微調整します。

キーボード ショートカットを学ぶ

VS Code を使用している場合は、ここでショートカットのリストを見つけることができます。

  • インラインの提案を受け入れる:Tab
  • インラインの提案を却下します。Esc
  • 次のインライン候補を表示:Option (⌥)+]
  • 前のインライン提案を表示:Option (⌥)+[
  • トリガーのインライン提案:Option (⌥)+\
  • GitHub コパイロットを開きます。Ctrl+Return

Tab/以外でよく使うのEscOption+[]です。これにより、最も役立つ提案が得られるまで、提案を循環させることができます。

操作するコパイロット構造を与える

Copilot は、本当にヘルパー関数に抽出したいものをインライン化することがあります。生成された関数を完全に削除し、最初にヘルパー関数をビルドします。通常、Copilot はそれを検出してそれを使用します。

これは、ハードコードされた定数値など、他のものにも当てはまります。生成されたコードのすぐ上に適切な名前の変数を追加すると、Copilot がそれらを統合します。

Copilot は CLI コマンドを支援します

あなたが私のようで、多くの git コマンドを覚えていない場合、Copilot はそれらにも役立ちます。

空のタブに、次のように記述します。

完璧ではありませんが、近づくための十分な手がかりが得られます!

Copilot は、テストの作成などの反復作業に優れています

ストリームで最も衝撃を受けた瞬間の 1 つは、Copilot が、私が構築していたかなり複雑な機能の正確なテストを作成したときでした。見てみましょう (タイムスタンプ 2:23:00):

副操縦士もあなたのためにコメントを書くことができます!

コメントを書くことは Copilot のコードに役立ちますが、コードを書くことは Copilot のコメントにも役立ちます!

既存のコードがあり、それを文書化する必要がある場合、Copilot はそれが何であるかについてある程度のアイデアを持っていることがよくあります。

Copilot はコードを説明できます (Copilot Labs 経由)

Copilot Labs 拡張機能をインストールすると、それをサイド パネルで開き、テキスト ブロックを強調表示すると、Copilot が平易な英語で説明するために最善を尽くします。

私はコードを流暢に読むことができるので、これがそれほど役立つとは思いませんでしたが、一部のコードが特に不可解な場合に役立つ可能性があります。

Copilot は、新しいコーディング言語の学習に役立ちます

react-native-colo-locoをビルドしていたとき、Groovy で書かれた Gradle スクリプトを書かなければなりませんでした。Groovy については少し知っていますが、多くはありません。そこで私は正確で正確なコメントを書くことに集中し、Copilot にコード行を提案させました。その後、開発経験に基づいてパターンと構文を習得し、そこから先に進むことができました。

ここで結果を確認できます(内容を示すために、ほとんどすべての副操縦士主導のコメントを残しました)。

Copilot のコードがうまくいかない場合は、ビルドを続けてください

副操縦士は文脈が大好きです。構築すればするほど、コンテキストが増え、より便利になります。MobX-State-Treeの一部を再構築することにしたとき、Copilot は非常に役に立ちました。コード ベースの残りの部分を調べることができるからです。(リファクタリングは出荷されませんでしたが、学習の大きな練習になりました。)

まだ初期の段階ですが、私は GitHub Copilot に対してかなり強気です。他にもコツがあればTwitterで教えてください!

謝辞:

  • Rizèl Scarlett の Copilot に関する講演に感謝します (こちらもご覧ください!):https://www.youtube.com/watch?v=CuQSoHbOpTQ
  • Copilot に関する優れた記事を提供してくれた Marie Prokopets に感謝します (これも読むべきです!):https://nira.com/github-copilot/
  • この記事の冒頭に素晴らしいグラフィックを提供してくれたJenna Fucciに感謝します。