最近、会社がプログラマーのグループで ChatGPT の試用を推進しており、試用した人の中には、このツールが自分のコーディングの思考に影響を与え、効率を下げると感じる人もいれば、試用後に本当に便利だと感じ、毎日手放せなくなり、コンピュータの画面は一日中 ChatGPT が生成したテキストで埋め尽くされている人もいます。私も ChatGPT をプログラミングの面でどのように使用しているかを記録しておきます。
コード#
コード理解#
日常的に要件を書く際、多くの場合、最初から書き始めるわけではなく、他の人が以前に書いたコードを基に修正を行うことが多いです。各人のコーディングスタイルや複雑さは異なるため、この時に ChatGPT を使ってコードのロジックを基本的に整理してもらいます。
例
ChatGPT の回答:
コードを書く#
時には、学んだことのない言語でコードを書くのは非常に難しいことがあります。この時に ChatGPT に手伝ってもらうことができます。また、実現したい大まかなアイデアがあるが、どこから始めればよいかわからない場合も、ChatGPT にデモを書いてもらうことができます。
- 提供されたコードが未完成の場合、ChatGPT には文字数制限があります
- 次のように言うことができます:
後のコードを続けて提供してください
- 次のように言うことができます:
- 提供されたコードに問題があり、実行時にエラーが発生した場合
- 次のように言うことができます:
問題を説明し、コードを修正してください
- コードが長すぎて毎回生成するのに時間がかかる場合や文字数トークンを無駄にする場合も、次のように説明できます:
問題を説明し、どの行を修正する必要があるか指摘してください
- 次のように言うことができます:
時には、ChatGPT が提供するコードに常に問題がある場合があります。この時は、私たちがコードを理解し(ChatGPT にコードの意味を説明させることもできます)、コード内の問題を見つけて、ChatGPT に問題を明確に指摘することで、問題解決のスピードを向上させることができます。
コード品質の向上#
ChatGPT にバグを解決してもらう
要件を書き終え、いくつかのコアロジックがある場合、この時に ChatGPT にコードにバグがないかチェックしてもらうことができます。また、オンラインで問題が発生した場合、特定のコードの一部に問題があることがわかっているが、問題の所在が不明な場合は、ChatGPT に尋ねて、チェックしてもらい、問題解決のためのアイデアを提供してもらうことができます。
- 時には、故障がどの行で発生したかを示すことがあります。この場合、ChatGPT にそのコードのどの行に問題があるかを伝えることで、より正確に問題を特定し、解決策を見つけることができます。
- コードに比較的詳細な注釈を追加することもできます。
ChatGPT にコードを最適化してもらう
ChatGPT もコードの最適化を手伝ってくれます。
SQL も最適化してもらえます。
テストシナリオ#
テストデータの生成#
開発が完了した後、自分で機能をテストする必要がある場合、この時に ChatGPT にテストデータを生成してもらうことができます。時には、これらのデータを生成するための Python コードも ChatGPT に生成してもらうことができます。
ユニットテストケースの生成#
コードを書き終えた後、対応するユニットテストケースを作成してコードの安定性と正確性を保証する必要がありますが、このユニットテストケースの作成は非常に時間がかかることが多く、時には元のロジックよりも複雑になることがあります。この時に ChatGPT にコードのユニットテストケースを作成してもらうことができます。
問題解決のアシスタント#
要件を受け取ったとき、あなたの状況はしばしばアイデアがないか、複数の実装方法が存在することが多いです。この時、ChatGPT に尋ねて、解決策を提案してもらうことができます。
プログラミング学習の伴侶#
新しい技術を学ぶ際、どのように始めればよいかわからないことが多いですが、ChatGPT に学習のアウトラインを提供してもらったり、学習計画を立ててもらったり、遭遇した問題を投げかけることもできます。
使用の小技#
- 長い対話が続く場合は、段階的にコミュニケーションを取り、各段階の対話に
もし理解できたら、理解したと答えてください
を追加することができます。 - ChatGPT の回答がほぼ完全で、ほんの一部だけ修正が必要な場合、その部分は自分で手を動かすことをお勧めします。もしあなたが ChatGPT に完全に一致する答えを求めるのであれば、得られるものよりも失うものが多くなるかもしれません。
最後に、ChatGPT は万能ではありません。何も知らない状態で全てを解決できると期待しないでください。彼はまるで