http://dl.dropbox.com/u/15791171/sa10-JimCoplien_Patterns_ja.pdf

読んだ。適当なメモ。(私なりの解釈なのであしからず。)

ソフトウェアのパターンコミュニティーは、アレグザンダーの設計思想の大切なところを引き継いでいない

例えば、アレクザンダーの設計思想は、まちや家に住む人の「感性」を大切にし、それを満たす幾何学的構造を見いだそうとしている。が、ソフトウェアコミュニティーは、感性は除外しエンジニアリングとして構造の精密さを求める傾向にある。

設計は重要

分厚いドキュメントもあれだが、YAGNI & テストから必要な設計がすべて導かれるという考えもナンセンス。
(Bob Martin からの引用が目に留まる)

アーキテクチャの肝は、ユーザのメンタルモデルを捕らえ、ソフトウェアの振る舞いと構造に反映すること

アレクザンダーが、まちや家に住む人の感性を大切にし、それを満たす幾何学的構造を見いだそうとしたように。
MVCを MとVとCにわけて、オブザーバーパターンで通知するメカニズムを有すると解釈するのは、エンジニア目線。MVCをユーザーの感性で満足するかたちを見出すためのパタンであることと解釈するほうが、本家のパタンらしさを受け継いでいる)

構造に関しては、クラス等で捕らえられたが、ふるまい、出来事に関しては、まだ道具が足りていない

ユーザのメンタルモデルに現れる繰り返し現れる出来事をうまく把持するアーキテクチャ設計が必要だ。
そこでDCI設計ですよ。


対称性の破れとか、ゲシュタルトとか、ソシュールなんかの引用が出てきてややこしい。