▲六英尺深的陽台,節錄自《A Pattern Langauge》
Pattern(模式)發展到今日已經廣泛地使用於各種領域,最為軟體開發人員所熟知的就是GoF Design Patterns。不同領域的不同作者所整理的pattern有著相異的撰寫格式,若能夠了解不同格式的涵義,對於學習、理解與活用pattern會有很大的助益。
***
格式
這系列文章將介紹常見的pattern撰寫格式,首先介紹Alexander格式(Alexander Form)。對於pattern略有了解的鄉民應該都知道,pattern的始祖是建築師Christopher Alexander。他在《A Pattern Langauge》書中撰寫pattern的格式便稱為Alexander Form或Alexandrian Form,其特點如下:
- 以全部大寫字母所撰寫的Pattern名字(Name)。
- 每一個pattern都有一張用來顯示其原型範例的照片。
- 在照片之後有一段介紹性文字用來界定pattern的應用情境(Context),解釋這個pattern如何幫助形成更大的pattern。
- 用三個菱形(星號?)做為區隔符號。
- 然後是一到兩句話的粗體標題字,用來描述問題本質(Problem)。
- 在標題之後是問題的詳細敘述,這是pattern裡面最長的章節。
- 接著出現Therefore:這個字,之後的粗體標題字表示解決方案(Solution)。
- 接著是一個用來代表解決方案的圖示(diagram)。
- 然後又是三個菱形區隔符號。
- 最後是敘述這個pattern與旗下pattern(比他小的pattern)之間關係的段落。
***
例子
接下來看一個《A Pattern Langauge》書中的例子:ENTRANCE TRANSITION(入口的過度空間)。這個pattern的內容可以在網路上找到,但是網頁版本的排版有點跑掉,所以下面照片是Teddy翻拍自書中的內容。
▼大寫的pattern名字和照片(1、2)。
▼Context、三個菱形、Problem(粗體標題字)以及問題的詳細敘述(3、4、5、6)。
▼這一整頁都是問題的詳細敘述(6)。
▼這一整頁還是問題的詳細敘述(6)。
▼Therefore:之前還是問題詳細敘述,之後的粗體標題字是解決方案,然後是代表解決方案的圖示、三個菱形區隔符號、以及這個pattern與旗下pattern的關係描述(6、7、8、9、10)。
***
手邊有《Domain-Driven Design》這本書的鄉民可以翻閱一下,這本書其實是一本pattern language,書中描述DDD的許多pattern,採用的格式就是今天介紹的Alexander格式。鄉民們可以比較一下,DDD書中的格式和今天介紹的格式有沒有什麼不同之處。
***
友藏內心獨白:問題很重要,所以要用最多篇幅來說明。
說起來各行各業到頭來都還是有些浪漫的成分呢
回覆刪除