プロンプトプログラミングをやってみた所感
ChatGPTが世間を賑わせているので、早速ですが使ってみている。
プロンプトエンジニアリングとかいう全部プロンプトで全部行けるんじゃないかという話もあるんだけど、実際それができたとして主流になるのはしばし時間がかかるだろう。
つーわけでいい感じに日々のプログラミングに活用できるところ模索しました。
TL;DR
基本的には以下の3つをメインの使い方として叩いていったら良さそう。
- ざっくり検索
- たたき台作成
- 要約
- 案出し
ざっくり検索
Google使うなChatGPT使え。
Googleはエンジニアの必須ツール。事あるごとになんか検索している。
内容はモジュールの使い方だったり、見知らぬバグの潰し方だったり、或いは久々に各言語の仕様だったり。
ここ数年は最近は量産型駆け出しエンジニアが「よーしアウトプット大事だな」って大量に記事を量産したおかげで日本語検索結果が荒れており、「いかがでしたでしょうか?」「マジで時間の無駄でした^^」という心のやり取りを数え切れずしてきたことだろう。
自分はかねてよりGoogleの言語設定を英語にして『日本語記事を排除する』ことでこの問題を回避してきたが、GitHubやStackOverflowで「そもそも別の箇所で間違ってない?」「良くわからないけど治ったよ!サンキュー!」みたいなやり取りにしばしば当たるので根本的な解決になっていない。
この点ChatGPTは莫大なノイズのフィルターとして大変優秀だ。
内容があってるか確証がないって?
そのへんのおっさんが書いてる記事だって一緒だろう。
どのみちちゃんと確認しようと思えば公式リファレンスを当たる必要があるのだ。
(「あーそうだったそうだった」と自分の記憶で確認が取れる『思い出し検索』の場合はいらないが)
公式リファレンスへもできるならChatGPTから飛んだほうがいい。
Googleに聞くと一番上にズカズカと全然関係ない広告入り込んでくる場合があるからな。
(「〇〇の導入支援!」「〇〇を使ったサービス」みたいな目障りなあれだ。俺は〇〇のリファレンスが見たいんだ)
Googleは広告に汚染されすぎた。
たたき台作成
フルスクラッチで人間が書くな。
完全なフルスクラッチじゃなくても新規関数とかのレベルの話でもそう。
GitHub Copilot使ってた人にとっては今更感があるだろうが。
- やりたいこと伝えて書いてもらう
- 細かい注文をつけて手直しさせる
- コピペ
- 気になるならもう少し手直しする
要約
先にモジュールの概要を教えてもらえ。
この辺は試行錯誤中ではあるが恐らくかなり有用。
コードベタッと貼り付けて「要約して」といえば数行で纏めてくれる。
コードを血眼になって眺めていてもどうせ知りたいのはざっくりした処理内容だろう?
明確にその関数にバグが有ると特定できたのであれば一行一行読めばいいと思うが、それまではAIに要約してもらっていいだろう。
案出し
考えるな、選択しろ。
これも試している最中ではあるがかなり有用。
コードベタッと貼り付けて「リファクタして」といえばいくつか改善ポイントを挙げてくれる。
もちろん全ての改善案を取り入れる必要はないし、もっといいやり方があるならそれと差し替えてもいい。
何なら他にやり方がないかも聞いてみればいい。
コードレビューの時間だいぶ減るんじゃないかなぁ。
まとめ
以下、本記事をベタ貼りしてChatGPTにまとめさせた内容。
・・・
ChatGPTはプログラミングにおいて役立つツールで、ざっくり検索、たたき台作成、要約、案出しといった使い方ができます。Googleに代わるノイズの少ない検索手段としても優れています。新しいコードや関数を作成する際に効率的な手助けができ、コードの要約やリファクタリングの提案も可能です。これにより、コードレビューの時間を短縮できるでしょう。
Discussion