最近、A Philosophy of Software Design という本を読みました。
その15章"Write the Comments First"(「コメントをまず書こう」)の内容が面白かったので、紹介です。
何をやるの?
実装の前に、クラス・(パブリック)メソッドの概要やインターフェイスのコメントを書くだけです。
あとでコメント書くのじゃ駄目なの?
- あとで書くっていう人は、大体書かない
- すでに実装が終わっているので、コメントを書くモチベーションが低くなりがち
- 他人のためだけに書くことになるので
- コードを書く時に考えていた設計上の考えを、コメントを書く時点では忘れがち
先にコメント書くと、何が嬉しいの?
- 設計直後orしながらなので、考えたことが頭に残っており、良いコメントを書きやすい
- いい感じにコメントが書けるか・書けないかで、システム・インターフェイスの複雑性を判断出来る
- いい感じに書けない=メソッドやクラスの責務が広すぎたり、抽象化が十分ではない
- 楽しい
その他
- コメントだったら何でも良いわけではなくて、コードを抽象化するか、情報を加えることが大事
- コードを繰り返すのではなく、抽象化or情報を加える
- 具体的には12章、13章で言及
思ったこと
- なんとなくTDDと似ている…?
- どちらも、先にコメント/テストを書くことで、設計を良くする
- どちらも、後から書くとサボりがちな部分を早めにする
- Comment Driven Development(CDD?)という用語を思いつきましたが、すでに呼んでいる人もいるようです
- コメントを書く順番を入れ替えるだけなので、気楽に試せるのは良きかな