Index: [Article Count Order] [Thread]

Date:  Tue, 6 Jun 2000 12:26:48 +0900
From:  Gunji Tsukuda <tsukuda@....jp>
Subject:  [XP-jp:00498] リファクタリング
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <393C6FE1.4E3BB834@....jp>
Posted:  Tue, 06 Jun 2000 12:28:33 +0900
X-Mail-Count: 00498


佃です。

書籍「リファクタリング」の第2章に、リファクタリングと設計、
柔軟性、性能の関係が書いてありました。
下記は、本に描いてあることと、自分が思ったことがごちゃまぜに
なっています。
関心のある方は、書籍をご覧になることをお勧めします。

もちろん、下記に対してコメントは大歓迎です。

<設計>
・コードを書く前にある程度の設計は行う。
・リファクタリングを行うことを前提にしているので、設計段階で
確信を持つ必要がない。確信を持つために時間を費やす必要がな
い。

<柔軟性>
・リファクタリングを前提としていても、将来の柔軟性を考えない
わけではない。
・多くの柔軟性を確保しようとすると、過度にコードが複雑にな
る。
・将来の柔軟性を確保するためにどの程度コストがかかるかを考え
る。ある柔軟性に対して、コストがあまりかからないのであれば、
その柔軟性に対していはそのまま放置しておく。(本当に必要にな
った時点でリファクタリングすればよい。今日必要なことだけを実
装する。)
・多くの場合は、1つの柔軟性要因への対応コストは、それほどか
からない。

<性能>
・性能に関しては、チューニングの段階まで考慮しない。
・性能のボトルネックは、コードの10%の部分に存在する。
・すべてのコードに性能対策を施しても、90%の部分は無駄にな
る。
・性能のボトルネックを予想でなく、実測して探すことが重要。
・コードが単純になっているので、最適化段階に入ったときに、チ
ューニング作業が容易になる。
・リファクタリングを常に実施している方が、結局は品質のよい、
性能のよいプログラムを早く作ることができる。

-- 
  Gunji Tsukuda  (tsukuda@....jp)
    Systems Development Laboratory, Hitachi, Ltd.