l

2016年1月12日 星期二

4月份Design Patterns這樣學就會了入門實作班

Jan. 1 10:20~11:20

螢幕截圖 2015-09-21 19.48.19

 

上禮拜五Scrum公開班課程的第一天中午吃飯時間,有一位學員找Teddy聊天。原本以為他要問Scrum問題,結果居然一個Scrum問題也沒問,都在談Design Pattern。

這位學員是團隊主管,他告訴Teddy想在團隊中推廣Design Pattern的使用,也讓團隊成員閱讀GoF Design Pattern然後輪流報告。在團隊學員報告的過程中,遇到一些問題,於是利用上Scrum的機會找Teddy討論。

這位學員問的問題,簡單的說和很多學習Design Pattern的鄉民會遇到的問題一樣,就是「只從solution的角度來看pattern」,因此很容易產生諸如:

  • 套用Singleton等於使用全域變數,那我改用Service Locator是不是比較好?
  • Visitor pattern去拜訪一個物件結構,如果只拜訪一個物件,是不是也算Visitor?

上面這兩個例子鄉民們比較不容易理解,舉兩個容易懂得例子:「請問感冒藥、鼻子過敏藥、香灰這三種pattern,我套哪一個比較好?」「我感冒流鼻水,吃鼻子過敏藥也可以抑制冒流鼻水,那我是不是可以說鼻子過敏藥也是ㄧ種感冒藥?」

什麼是模式?A pattern is a proven solution to a recurring problem in a specific context.(模式是在一個特定情境下針對重複出現問題的成熟解決方案)所以學習pattern不能只看解決方案(solution),就好像生病不能看到藥就拿來吃一樣。還要了解問題(因為感冒流鼻水,還是因為過敏,還是其他原因),以及問題發生的情境、脈絡(你正在工作中還是準備睡覺?你是卡車司機、學生,還是正要出門約會的女生?),才能夠依此選擇合適的解決方案。

看到這邊可能鄉民們已經頭暈了,但還沒完。如果套了pattern之後水土不服怎麼辦?有副作用怎麼辦?原本的問題沒有解得很乾淨怎麼辦?相較於學會單一pattern的實作方法(只知道solution),了解context、problem、solution、resulting context(套用pattern之後的結果)這些元素之間的關係,才是學會並活用pattern的重點。

***

廣告台詞寫完,接下來要打廣告。2016年第一梯「Design Patterns這樣學就會了入門實作班」開放報名,上課日期為3月5、6、12  4月16、17、23(六、日、六)。入門班課程重點包含:

  • 軟體設計與設計的產出物
  • Pattern的六大元素(Context、Problem、Force、Solution、Resluting Context)
  • 動手寫自己的Pattern
  • 套用Pattern的流程 
  • 基礎物件導向觀念
  • 10個常用GoF設計模式:包含State、Facade、Template Method、Factory Method、Abstract Factory、Observer、Command、Adapter、Strategy與Composite。
  • 套用設計模式的原則,如何判斷套用的設計模式是否合適?

 

螢幕截圖 2015-09-21 18.55.23

***

▼課程照片。

螢幕截圖 2015-09-21 19.55.44螢幕截圖 2015-09-21 19.56.12螢幕截圖 2015-09-21 19.56.37螢幕截圖 2015-09-21 19.57.07螢幕截圖 2015-09-21 20.04.24螢幕截圖 2015-09-21 20.06.05

***

報名網址再貼一次:Design Patterns這樣學就會了:入門實作班3月5、6、12 4月16、17、23(六、日、六)

***

友藏內心獨白:學會套用Pattern的流程很重要。

3 則留言: