🤔

動作を明確に言語化してみよう

2023/04/20に公開

最近コードをChatGPTに書いてもらうことが増え、実装したいことをコードではなく日本語で表現することが増えました。
ChatGPTに伝えられる以外のメリットが見つかったのでいくつか列挙してみます。

無駄な処理を省ける

IDからメッセージを取得→メッセージからIDを所得...
みたいな意味のないコードを無意識に描いていることがたまにありますよね。コードで見たら違和感を感じなくても言語にすると無駄が恐ろしいほど多いことに気が付きます。
スパゲッティコードになって読めなくなる前に整理することはとても重要です。

バグの原因が洗い出せる

エラーが出ないタイプのバグに遭遇した時など言語化することでどこが動いていない可能性があるかをリスト化し一つ一つ調べることができます。
特にプログラム内で想定し忘れていたパターンの状況になったタイプのバグに気が付くのにとても効果的です。

どこから作業に手を付ければいいかわかる

何をしたいのかがわかれば、どこからコードを書けばいいかがおのずとわかります。
目的ではなくそこにたどり着くまでの過程を考えましょう。
例:Discord.pyでリマインダーのBotを作るならコマンドでリマインダーを設定したいではなく、コマンドで時間とリマインダーのメッセージを受け取り、リストにリマインダーのデータを保存し...
のように細かいところまで考える

ただ言語化すればいいわけではない

ただ言語化するのではなくほかの人にその伝え方をして同じ動作するコードを書いてもらえるくらい丁寧に言語化することが重要です。
かんたんな練習法として、少し複雑なコードをChatGPTに書く指示をだし、書いてもらった後そのコードを別のチャットで動作の説明をしてもらって、その内容が想像している動作と同じになるまで続けるといいでしょう。意外とすれ違いが起きて、人間が自分の中での前提で話してるということを実感させられます。

終わりに

この文を読んで、そんなのわかってると思ったかもしれませんがやってみると意外と自分が自分にしかわからない事をしていたことを実感すると思います。このような普遍的なことを意識してすることがいいものを作り出すのに必要なことなのではないのでしょうか。

Discussion