comment driven development
つまりコメント駆動開発
コメントファーストと言っても良いと思います
Github copilot、ChatGPTが出て以降、今まで以上にコメントを書くことが重要になっていると思います
あらゆるコードにコメントを残したほうが良く、コメントのないコードは極力避けたほうがいいのでは?とすら思っています
なぜなら、コメントを書くことこそが最早プログラミングでありコーディングであるから
です
コードレビューの着眼点も、些末なコードのお作法や様式美を指摘するくらいなら、コメントがわかりやすく残されているかどうかを指摘しましょう!
何故そう思うか?
github copilotを導入してから、コメントでほとんどのコードが書けてしまうからです
github copilotが便利すぎる…
copilotに限らずChatGPTに直接聞いてみても似たようなコードが出力されます
ここまで自然言語を綺麗にコードに変換できるとなると、もはや
コメントを書く=プログラミング、コーディングなのではないでしょうか?
さらに、AIはコメントとコードのダブルチェックによって精度が上がります
コメントとコードの内容がズレていると、ChatGPTは指摘してくれますし、そこからどういうミスをしているのかの推理までしてくれます
この素晴らしきAIの性能を使って楽することこそエンジニアリングですよね
コメントがなくても理解できるコードを善しとされてきた歴史
-
コメントは実際に実行される部分ではないため、コメントがあっているかどうかテストで担保できない
-
コードを直してもコメントを直さないケースが発生しうるため、コードとコメントが一致しなくなる可能性がある
などという理由で、コメントが無くても理解できるコードほど良いとされてきました…
でも、実際はコメントがないせいで、まるでパズルを解くような作業を要求されるコードのほうが多いように思います
コードリーディングで苦しんだ経験のないエンジニアはいないと言っても過言ではないでしょう🥺
そんな中、 GitHub Copilot、ChatGPT が登場した
LLMによって、自然言語とコードでそれぞれ分断されていた関係性への架け橋ができてしまった
この世界では最早コメントはコードでありコードはコメントである
つまりコメントはコードと同等の重みを持つ存在となる
AIがコメントを解釈し、コードを出力できる状態を保つことこそ、今後重要になるのではないだろうか?
もちろん我々人間も自然言語を処理できるので、コメントがあるほうが当然読みやすいです
今後やって欲しいこと
Github copilotを使った際、コメントからコードを出力してもらってるにも関わらず、コメントはコミットせず消す。。。というような行為をしていませんか?
それは絶対にやめましょう!!
これからのコメントは常にコードと対等な存在です!
コメントはAIが理解するために必要な道具です!
我々が理解するためにも必要な道具です
コメントを書くことでコードが出力され、AIの理解も、我々の理解もしやすくなる
一石三鳥なので、これからはコメントをゴリゴリ書いていきましょう。
というか、いきなりコードを書く前に、コメントから書いていきましょう。
今後予想される世界
- コメントのみで完全にコーディングが完了する
- コメントとコードの不一致を検出できる
- 設計書とコメントとコードの相互変換ができる
- テストコードが不要になる
100%この世界になるのは当分先だと思います
いきなりゼロイチでこれらの項目が達成されることはありません
そこまでのグラデーションは必ず存在します
そのグラデーションはこの1,2年で大きく進んでいくのはでないかと思ってます