seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

グッドプラクティスと、その適用について語る本か。

 リファクタリングがコードを書いたあとに行われるものに対して、プレファクタリングとは、コードを書く前に行われるものである。
 つまり、設計の段階で、将来、リファクタリングしなければならないような部分を避け、リファクタリングで培われたグッドプラクティスを事前に適用してしまおう、ということである。
 この本では、これらは「指針」として提示され、架空の事例をもとにデザイン時からリリース、第2フェーズでの拡張などを通じて、どのように適用してゆくのか説明してゆく。
 巻末には、これまで説明された指針の一覧があり、常に心がけるように傍らにおけるようにもなっている。

 しかし、これは何も新しいものではない。
 説明されている「グッドプラクティス」はもとより、本書で強調されている姿勢、リファクタリングしなければならないニオイがするならば、それを避けることは、リファクタリング実践者ならばすでに身についた習慣だと思われる。

 それでも、この本の意義があるとすれば、やはり「言外の知識」が随所に感じられるところであろうか?
 たとえば『jUnitを始めたころにはテストケースを動かすためだけにパッケージスコープのメソッドを作っていたが、今では、それが設計に問題がある兆候だと分かるようになった、云々』といったくだり。
 この本のプラクティスでは「なぜならば…だからである」という説明はなく、何かを証明しているわけではないが、経験として得られている真実の良い習慣であるみとは確実である。

 文法を教えるのは容易いが、モデリングの方法を教えるのは少し難しく、そして習慣を教えるのは、もっと難しいように感じている。
 その意味で、この本は理想といえないまでも、私が求めている部分にかなり近いものではないか、と感じられた。
 ただ、これは!と思わせる内容でもなく、また、うまいと思うほど体系的にはまとめられておらず、そこが☆4つの理由である。