前回の続き。
リファクタリング提案のようなものも出てくる。
Pointers and self-documenting code
http://www.mail-archive.com/webkit-dev@lists.webkit.org/msg19780.html
- ポインタを返す関数を数珠つなぎにすることがよくあるけど、どこに null チェックを挟むべきかが曖昧。null ポインタを決して返さない関数は、参照を返すようにしたらよいのでは。
- あるプロパティが場合によって null になるときと非 null になるときがあって、それがいつかは呼び出し側が知っているときがある。だから、意味ない。
- そういうときは assert を入れればいい。
- アクセサには3つのタイプがある。
- 決して null を返さないもの
- null を返しうるが、その条件が複雑なもの
- null を返しうるが、その条件が単純なもの
1 を参照にしたい。
2 は常に null チェックする必要がある。
3 は条件を調べるのが手間なので、安全側に倒しがち。ただ、微妙な話になるので今回は議論を避けたい。
そして最後のトピックは、野次馬的にはもっとも興味深かった。
Comments in the code (Was Please include function-level comments in change log entries)
http://www.mail-archive.com/webkit-dev@lists.webkit.org/msg19786.html
- コメントがないことで、新規の開発者が理解に骨を折ることになる。
- それでいいじゃん。プロジェクトの新規参加者はコメントを読んでわかったつもりにならずに、コードを読んで理解するべき。
議論はこの後も続くけど、ちょっと荒れ気味なので、訳すのがためらわれた。内容はおもしろいので、興味のある方は読んでみるといいと思う。
自分は過去に、設計情報を全く残さないプロジェクトと、設計情報を潤沢に残すプロジェクト、両方で働いたことがあって、前者のプロジェクトでは大変つらい思いをしたので、何らかの形で設計情報を残すことは必須だと思っている。
そんな中で、WebKit でどうやっているか、何が問題になっているかを知ることができたという意味で今回の議論は興味深かった。
ソースコードにコメントは書かないにしても、ChangeLog の形で設計情報を残しておくのはまぁ妥当なラインなのかなと思った。