Smalltalkベストプラクティス・パターンを読んだ
新横浜-姫路間で運良く座れたので読んでいた。良いと思ったところとか。
Intention Revealing Selector
メソッドの名前を考えるときに、異なる実装の同じことをなすメソッドを考えてみて、それ同じ名前に出来るのであれば、十分抽象化されている。というようなことが書いてあった。指標となる例があるの嬉しかった。抽象化されているかどうかとか一人で考えていると闇の世界に入っていってよく分からなくなることがあると思う。
Direct Variable Access
インスタンス変数に直接アクセスするのは分かりやすいから、アクセサが必要ないときは直接アクセスしてもいいんじゃない?(文法的にRubyとかだとアクセサ定義したほうが変数普通に使ってるっぽいから微妙だけど)みたいなことが書いてあった。継承することのない時までいつでもアクセサ定義しなければならないみたいな呪縛から解かれるかもしれない。柔軟性と手軽さどちらかを自分で選ばないといけないが。
Role Suggesting Temporary Variable Name
変数の型と役割が分かることが重要。式をわかりやすく書けば、型を知ることができるし、それに加え名前で役割を十分に表せればよいと思う。
Collect
コレクションの各要素に処理を行いたい場合、collectで中間コレクションを作れば(そのようなメソッドを用意すれば)、コードは明瞭になる。パフォーマンスのことを気にするのは後で、問題になったときと書いてあった。リファクタリングにも書いてあったけど、きちんとわかりやすく書いたほうが、あとからパフォーマンス上の問題も発見しやすく、変更しやすい。最近は途中で思い出したようにパフォーマンスが気になり出しても、ア、今じゃないんだ、と考えるようにしている。
Guard Clause
僕はRubyでreturnを書かないようにしていたんだけど、ここに良い言葉があった。"複数のリターン文で書かれたメソッドはしばしばプログラマの意図を直接的に表すことがあります。" 途中でreturnするほうが意図に合っていれば、複数のreturnを使うのが良いかもしれない。
あと何回か読みたいと思う。
ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集
- 作者: ケントベック,Kent Beck,梅沢真史,皆川誠,小黒直樹,森島みどり
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2003/03
- メディア: 単行本
- 購入: 7人 クリック: 93回
- この商品を含むブログ (55件) を見る