2011年1月29日土曜日

パターンカタログの私的ランキング(TOP10)

パターン・カタログ=GoFのデザパタだと思ってる人をたまに見かけるが、実は結構、他にもたくさんある。

以下、勝手に作ったパターンカタログのランキング。飽くまでも私的で主観的な尺度でポイントを付けた。

1位 GOFのデザパタ
言わずと知れたデザインパターンのバイブル、『オブジェクト指向における再利用のためのデザインパターン』掲載されている、23のパターン。まずはこれが基本かと。
実用度有名度使い勝手教養度面白さポイント
55555100.0


2位 PoEAA
エンタープライズ アプリケーションアーキテクチャパターン』に掲載されている、いわゆる PoEAA (Patterns Patterns of Enterprise Application Architecture)。2000年代初頭までのオブジェクト指向システム開発の流れを総括した上で、現在に至るその後の展望を示したパターンの金字塔。さすがに、もうそろそろ、若干の陳腐化が見られなくもないが。

実用度有名度使い勝手教養度面白さポイント
4545589.6


3位 Effective Java
Effective Java (2nd Edition)』掲載の Javaコーディングイディオム。Java プログラマは必携・必読かと。

実用度有名度使い勝手教養度面白さポイント
5533586.4


4位 CodeSmell
ファウラーの『リファクタリング本』に載っているアンチパターン。リファクタリング手法そのものより、むしろこっちの方が重要だと思う。

実用度有名度使い勝手教養度面白さポイント
5434585.3


4位 xUnitパターン
xUnit Test Patterns』で紹介されている UnitTesting のパターン。XUnitPatterns.comでも閲覧可能。これもアンチパターンの部分が重要。

実用度有名度使い勝手教養度面白さポイント
5434482.8


6位 アンチパターン
AntiPatterns』掲載の、定番のアンチパターン集。ちょっと古いが、コーディングや設計に止まらず、プロジェクト管理などにも渡る広めのスコープをカバー。

実用度有名度使い勝手教養度面白さポイント
3455481.3


6位 POSA
ブッシュマンの『POSA本』(Pattern Oriented Software Architecture)に載ってる、アーキテクチャパターンの古典。1巻しか和訳されていないので余り知られていないが、2巻3巻もある。いや、確か5巻くらいまであったかもしれない。

実用度有名度使い勝手教養度面白さポイント
3455379.1


8位 Effective C#
Effective C#』と『More Effective C#』に掲載の C#のイディオム。

実用度有名度使い勝手教養度面白さポイント
5432477.9


9位 アナパタ
ファウラーによる分析レベルのパターン集の古典『アナリシスパターン』。モデルの図法が若干とっつきにくい。

実用度有名度使い勝手教養度面白さポイント
2425569.5


10位 Enterprise Integration Patterns
Enterprise Integration Patterns』掲載のパターン。意外と知られていないが、ここで導入された図法、グレゴールグラムも含めて、EI 界隈では金字塔と言われるパターン集。SOA、ESBをやる人はほぼ必須知識に近いかと。

実用度有名度使い勝手教養度面白さポイント
3343467.7


→TOP20へ

====
★ 補足
上記のとおり、五つの評価軸について5段階評価して、ポイントに集計してランクをつけてみた。

・実用度は、仕事で役に立つかという観点。個人的な職歴によるバイアスがかかっている。したがって、仕事では使わない smalltalk や最近現場では使っていないC++に関連するものは、点が低かったりする。

・有名度は、各種の記事や著作から引用されてているのを目にしたり、同僚との会話の中に出てくる事が多いもの。これももちろん私的な環境に依存する。

・使い勝手は、主にカタログとしての質。書式・体裁や、粒度、識別し易さなど。またダイアグラムやサンプルコード、パターン間のナビゲーションなども。

・教養度は、他のパターンが前提的な知識として要求していたり、このパターンを知っていると他のパターンを理解し易いというもの。

・面白さは、文字通り面白いという事。知的好奇心を刺激されたり、可能性が開けていく感覚があったり、思わぬ気付きがあって興奮したりとか、そういうやつ。

評価軸自体にも、実用度に5点、有名度に3点、使い勝手に3点、教養度に2点、面白さに1点と言うように重みを付けた。

点の集計は、一応技術者らしくフィボナッチスケールを応用してみた。1~5の点数をフィボナッチをもとにした数列{21, 27, 34, 44, 55}に変換して総合点を集計し、オール5だったときに100になるように調整した。

0 件のコメント:

コメントを投稿