2013年11月27日水曜日

マルチパラダイムデザイン

クラスや関数を設計するにあたって、「共通性」と「可変性」というものを分析する必要がある。

共通性(commonality)とは、あらゆる目的に同じ使い方ができる性質。
可変性(variability)とは、状況によって使い方が変わる性質。

これらを分析し、可変性を何らかの形でパラメータ化できれば、あらゆる目的に再利用可能なクラス・関数を設計できる。
書籍『マルチパラダイムデザイン』は、共通性と可変性の分析、設計、実装方法の解説に一冊を使っている。
これは設計の非常に重要な考え方なので、プログラマのみなさんには、ぜひ買って読んでもらいたい(ただし絶版)。

合わせて読みたい:
マルチパラダイムデザインに欠けているもの - Cry's Diary
Boost.Polygon.Voronoiライブラリを例に、堅牢かつ効率的多倍精度アルゴリズムの設計について