Erich Gammaいわく

artima developerに連載されている、Erich Gammaインタビュー。気になったところをメモしておきます。
(Web積読解消の一環)
How to Use Design Patterns

  • 問題を解決するためにパターンを使うべき。パターンをやたらに使って、設計を複雑にしてはだめ。要求される柔軟性や再利用性を実現するためにパターンを導入すればよい。
  • 成熟した設計では、核となる抽象概念(JUnitの場合はTestCase)の周りをパターンで実現される設計ポイントが囲う形になる。
  • パターンは、必然のものとして浮かび上がってくる("pattern destiny")。

Erich Gamma on Flexibility and Reuse

  • 何年か前、フレームワークを追求し始めたときは、ハイレベルな、ドメインに特化したフレームワークを構築してカスタマイズすれば再利用の涅槃に逝けると思ってた。でもいまはちょっと現実が見えて、それが難しいってことがわかった。
  • 将来必要になる柔軟性を予測して実装するのは悪。GoF本には「再利用を最大限を行うためのキーは、新しい要求や、既存の要求に対する変更を前もって知ること、それらが然るべく進化できるようにシステムを設計することである。(GoF本の「概論 1.6デザインパターンで設計問題を解く の 「変更に対する設計」という節の冒頭)」と書いたけど、10年たって大人になって、宗旨替えした。
  • リファクタリングするときか、新しい要求を実装するときにパターンを実装する。予想される要求ではなく、実際の顧客が要求するものを実装する。

Design Principles from Design Patterns

まだまだ、つづきがあるんですよねぇ。