l

2016年11月17日 星期四

Pattern格式介紹(4):Portland格式

Nov. 16 17:27~18:45

屏幕截图 2016-11-16 18.45.06

畫面節錄自此

 

格式

Portland(波特蘭)是美國俄勒岡州的一個城市,Portland格式因為剛開始採用的人都來自該城市,故而稱之。這個格式採用文字敘述的方式來記錄pattern,而不像GoF格式有清楚的分段。

Portland格式的pattern通常包含這樣的句子:「這些forces造成這個問題,建立一個這樣的東西來應付它們。」Pattern的名字從它所要建立的東西,也就是solution而來。整個文字敘述看起來像是:

  1. 因為如此這般所以你面對這樣的問題….
  2. 這是為什麼這個問題之所以會是一個問題的理由,以及哪些作用力必須要被解決…
  3. Therefore:
  4. 提出解決方案
  5. 總結(Summary)

Portland格式的詳細說明可參考About the Portland Form,因為這個格式基本上沒什麼格式,所以不太好解釋。直接看例子看看能不能比較容易理解。

***

例子

▼第一個例子是Ward Cunningham所寫的〈The CHECKS Pattern Language of Information Integrity〉裡面的Whole Value模式。

  • 第一段提到除了使用程式語言提供的基本型別或類似date、time、point等小物件以外,你可以使用物件用來代表商業領域中有意義的數量。
  • 第二段說明使用基本型別或程式語言內建的小物件做為塑模工具是不好的,因為這些小物件可以用來代表任何東西,它們並沒有商業領域的意義。
  • Therefore:
  • Construct….這一段還有以下的簡短程式碼代表solution。
  • 最後一段是總結,有點類似GoF格式的Related Patterns。

屏幕截图 2016-11-16 18.01.22

***

▼第二個例子是Kent Beck所寫的〈Code Formatting Patterns〉裡面的Type Suggesting Parameter Name模式。在這個例子裡面:

  • 第一句有點像是context。
  • 第二句則是problem:What should you call a method parameter?
  • 第三句之後,Therefore之前的段落則在探討forces。
  • Therefore之後,最後一段之前則是solution。
  • 最後一段是總結。

屏幕截图 2016-11-16 18.23.05

***

Portland格式似乎有點類似Alexander格式只是拿掉圖片與菱形,以及沒有用粗體字來代表problem與solution。拿掉章節(session)採用文字敘述的方式來撰寫pattern,使得讀者在閱讀pattern的時候好像在讀一段故事一樣,這可能是Portland格式最主要的目的。讓pattern不要那麼「硬」。

***

友藏內心獨白:感覺是高手使用的格式。

沒有留言:

張貼留言