佃です。
書籍「リファクタリング」の第2章に、リファクタリングと設計、
柔軟性、性能の関係が書いてありました。
下記は、本に描いてあることと、自分が思ったことがごちゃまぜに
なっています。
関心のある方は、書籍をご覧になることをお勧めします。
もちろん、下記に対してコメントは大歓迎です。
<設計>
・コードを書く前にある程度の設計は行う。
・リファクタリングを行うことを前提にしているので、設計段階で
確信を持つ必要がない。確信を持つために時間を費やす必要がな
い。
<柔軟性>
・リファクタリングを前提としていても、将来の柔軟性を考えない
わけではない。
・多くの柔軟性を確保しようとすると、過度にコードが複雑にな
る。
・将来の柔軟性を確保するためにどの程度コストがかかるかを考え
る。ある柔軟性に対して、コストがあまりかからないのであれば、
その柔軟性に対していはそのまま放置しておく。(本当に必要にな
った時点でリファクタリングすればよい。今日必要なことだけを実
装する。)
・多くの場合は、1つの柔軟性要因への対応コストは、それほどか
からない。
<性能>
・性能に関しては、チューニングの段階まで考慮しない。
・性能のボトルネックは、コードの10%の部分に存在する。
・すべてのコードに性能対策を施しても、90%の部分は無駄にな
る。
・性能のボトルネックを予想でなく、実測して探すことが重要。
・コードが単純になっているので、最適化段階に入ったときに、チ
ューニング作業が容易になる。
・リファクタリングを常に実施している方が、結局は品質のよい、
性能のよいプログラムを早く作ることができる。
--
Gunji Tsukuda (tsukuda@....jp)
Systems Development Laboratory, Hitachi, Ltd.