l

2016年11月9日 星期三

Pattern格式介紹(1):Alexander格式

Nov. 09 12:11~13:31
屏幕截图 2016-11-09 13.30.37

▲六英尺深的陽台,節錄自《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,其特點如下:

  1. 以全部大寫字母所撰寫的Pattern名字(Name)。
  2. 每一個pattern都有一張用來顯示其原型範例的照片。
  3. 在照片之後有一段介紹性文字用來界定pattern的應用情境(Context),解釋這個pattern如何幫助形成更大的pattern。
  4. 用三個菱形(星號?)做為區隔符號。
  5. 然後是一到兩句話的粗體標題字,用來描述問題本質(Problem)。
  6. 在標題之後是問題的詳細敘述,這是pattern裡面最長的章節。
  7. 接著出現Therefore:這個字,之後的粗體標題字表示解決方案(Solution)。
  8. 接著是一個用來代表解決方案的圖示(diagram)。
  9. 然後又是三個菱形區隔符號。
  10. 最後是敘述這個pattern與旗下pattern(比他小的pattern)之間關係的段落。

***

例子

接下來看一個《A Pattern Langauge》書中的例子:ENTRANCE TRANSITION(入口的過度空間)。這個pattern的內容可以在網路上找到,但是網頁版本的排版有點跑掉,所以下面照片是Teddy翻拍自書中的內容。

▼大寫的pattern名字和照片(1、2)。

屏幕截图 2016-11-09 12.58.41

 

▼Context、三個菱形、Problem(粗體標題字)以及問題的詳細敘述(3、4、5、6)。

屏幕截图 2016-11-09 12.59.30

 

▼這一整頁都是問題的詳細敘述(6)。

屏幕截图 2016-11-09 13.05.36

 

▼這一整頁還是問題的詳細敘述(6)。

屏幕截图 2016-11-09 13.07.22

 

▼Therefore:之前還是問題詳細敘述,之後的粗體標題字是解決方案,然後是代表解決方案的圖示、三個菱形區隔符號、以及這個pattern與旗下pattern的關係描述(6、7、8、9、10)。

屏幕截图 2016-11-09 13.09.17

***

手邊有《Domain-Driven Design》這本書的鄉民可以翻閱一下,這本書其實是一本pattern language,書中描述DDD的許多pattern,採用的格式就是今天介紹的Alexander格式。鄉民們可以比較一下,DDD書中的格式和今天介紹的格式有沒有什麼不同之處。

***

友藏內心獨白:問題很重要,所以要用最多篇幅來說明。

1 則留言:

  1. 說起來各行各業到頭來都還是有些浪漫的成分呢

    回覆刪除