はじめに
ChatGPTを使うことで、日々のコーディング作業の負担を減らし、効率を大きく引き上げることができます。
今回Promptyでは、コーディングのお供にChatGPTを使うメリット、使いこなしてコーディングを効率化するコツ、具体的な活用方法をお伝えいたします。
筆者もコーディングをするとき、ChatGPTに色々聞きながら作業することで、かなりスピードが上がりました。
あなたもぜひ、ChatGPTをうまく使いこなしてコーディング作業を効率化してみてください。
ChatGPTをコーディングに使うメリット
コーディングのハードルを下げる
専門知識がまだ少ない状態でも、ChatGPTに段階的に指示を出せばコーディングをしてもらうことができます。まだプログラミングを始めたての初学者の方も、ChatGPTに聞きながらであれば学びながら本格的なコーディングをすることができるでしょう。
プログラマーの負担が減る
実装方法や命名など迷ったときも、ChatGPTに聞けば一瞬です。
コーディング速度の向上
ChatGPTの応答速度はとても早く、長めのコードも一瞬で出してくれます。
多様なプログラミング言語への対応
JavaやPythonといったメジャーな言語から、マイナーな言語まで様々な言語に対応しています。
コード品質の向上
テスト、レビュー、リファクタリング、修正までChatGPTが行ってくれます。
ChatGPTを使ってコーディングするコツ
ChatGPTは賢いですが、こちらの意図をすべて察することはできません。適切な質問を投げることが重要です。
最新情報が必要なことを聞かない
ChatGPTが持っている情報は2021年までと言われています。
例えばOpenAIのAPIを使った開発について聞くのは避けましょう。
ChatGPTは自分が知らないということを知りません。自身が持ちえない情報についてもそれっぽく語り始めます。(ChatGPTは前の単語から次を予測してそれっぽい文章を生成しているだけなので)気をつけましょう。(筆者も全く的外れな回答をされ続けたことがあります。)
ある程度自分が知っている分野・言語について聞く
ChatGPTは100%正しいとは限らないので、自分が正誤を判断できないこと、すぐに実行できないことは聞かないでおきましょう。
前項と同じく、それっぽい回答に惑わされないようにしましょう。「私はそれについて十分な情報を持っていません」と言ってくれればまだマシですが、そうでないことがあります。
明確に、具体的な指示を出す
明確に指示を出してあげましょう。例えば、「〇〇を追加してください」「〇〇をする関数を作ってください」や「〇〇を教えて下さい」などです。
逆に、抽象的・曖昧・複雑すぎることを聞かないようにしましょう。的外れな回答が返ってくる可能性が高まります。
前提を伝える(言語、環境、目的、背景などを伝える)
例えば使用しているOSや、使用したい言語、作ろうとしているコードの最終目的、コーディング規約(命名規則など)などの前提を伝えることで、回答の精度が上がります。
文脈を活用する
ChatGPTはある程度前の会話を覚えています。前提を伝える際は、これを利用するのも手です。
例えば、言語を指定しておいたりすることなどが考えられます。
以下のようにコーディング規約や使用言語を事前に伝えておくと何度も伝えなくて済むので効率が上がるでしょう。(赤文字部分など自由にカスタマイズしてください。)
今後の回答は以下の###制約条件に従ってください。
###制約条件
- 言語はPythonを使用してください
- 関数名はすべてsnake caseを使ってください
- 変数名はすべてsnake caseを使ってください

段階的に指示を出す
例えば画像ビューワのアプリを作るとき、「スライドショー機能もつけて、画像をモノクロに切り替えれるように、…」など一気に色々お願いするとしっかり動くものを作ってくれなかったりします。
上の記事での例のように、まずはシンプルに作ってもらい、あとから付け足しをお願いすると良いでしょう。
質問に個人情報や機密情報を含めない
情報漏えいにつながる可能性があります。
具体的な活用事例
依存関係の少ない(単体で動く)関数を書いてもらう
例えばこちらの記事では、「連想配列の配列を定義し、それを更新(要素追加)する関数」を作ってもらいました。
関数名や変数名を命名してもらう
例えば「n個提案して」といった聞き方をすると、最善のものを選ぶことができるでしょう。

かなり良いものを提案してくれることが多いです。
エラーを解決してもらう
エラー文をそのまま貼っても勝手に解釈して解決してくれることが多いです。以前のようにGoogle検索するときは一般化(固有名を抜いたりなど)が必要だったりしますが、これは便利ですね。
テストケース・ダミーデータを作ってもらう
例えば、お問い合わせフォームのHTMLを貼り付けて、「このフォームのダミーデータを10個作って」とすると、ダミーデータを作ってくれます。境界値や異常値も含めるように指示出しできます。
こちらの記事で解説しています。
リファクタリング
高速化や軽量化に役立ちます。
違う言語で書き換えることなどもできそうです。
画像で例を示します。
(コード自体は長すぎるので割愛します。)
例)TwitterAPIでツイートを収集し、データを分割しながら保存するプログラムのリファクタリング

実行結果

ぱっと見でわかるくらい良くなりました。(長すぎたmain関数が分割されました。)
どこをどんなふうにリファクタリングしてくれたかまで書いてくれています。
先程伝えたコーディング規約に則ってくれたようです。

コメントアウト追記
わかりにくいコードにコメントアウトを追記してくれます。
読みにくいコードが読みやすくなって時短になりますね。
先程の例のコードに続いて、コメントアウト追記をお願いしてみました。

実行結果
コメントを追加してくれました。コメントを追加した場所を教えてくれました。

コードレビュー
例えば、「以下のコードについて、問題や解決すべきことはありますか?」と聞いてみましょう。
先程の例のコードに続いて、コードレビューをお願いしてみました。

かなり的確なことを言ってくれます。
Linuxコマンド、SQLを書いてもらう
エクセルやスプレッドシートの関数を聞くのと同じ要領で使えてとても便利です。
今回はLinuxコマンドを聞いてみました。
丁寧に教えてくれました。

コピペして実行してみました。正常に動作しています。

シーケンス図を元にコーディングする
シーケンス図を表すPlantUMLコードからすぐにプログラムを作成することができます。
以下の記事を参考に作成してみてください。
ちなみに、要件定義からシーケンス図を作成することもできます。
方法はこちらを参照してください。
まとめ
今回Promptyでは、ChatGPTをコーディングに使うメリット、知っておくと良いコツや具体的な活用方法をお伝えいたしました。
ご紹介した方針や事例を使って、ぜひ日々の作業を効率化してみてください!