Sep. 09 16:46~17:27
有一位朋友問Teddy:「程式設計師要如何成為好的分析師或架構師?」答案很簡單,就是「練習從制高點」看問題。敏捷與精實開發社群的人都知道,要落實一項改善活動,不能只看某一點(區域最佳化),而是要觀照全局,做到整個價值鏈(value-chain)或工作流程的最佳化。如果你站在西門町紅樓樓頂,你只看的到附近的街景。站在101大樓的觀景台,可以看到大台北地區的街景。嘗試去看到問題的全貌,會讓你成為一位更好的工程師。
同樣的道理應用在學習Design Patterns上面,最基本的理解是知道GoF書中23個模式在解決什麼問題、這個問題的forces是什麼、用什麼方法解決、解決之後現況變成什麼樣子。但是,隨著模式方法越來越流行,世界上被整理出來的設計模式沒有幾萬個,也有幾千個。光是學GoF的23個模式就快搞死人了,那剩下來「幾千減掉23個」設計模式要怎麼學?要嘛亂學,要嘛不學?!
所以,要進入模式領域,最好的方法是了解模式起源,也就是建築師Alexander的模式理論,從context、problem、force、solution、resulting context等基本元素開始,自己練習整理出一個模式。具備這樣的能力之後,日後不管看到何種模式,或是遇到軟體與介面設計的問題,都可以套用Alexander的模式方法來分析。
***
2014年最後一梯次的「Design Patterns這樣學就會了:入門實作班」與「Design Patterns這樣學就會了:進階實作班」分別將在10月18、19、25(六、日、六)與11月01、02、09(六、日、日)舉辦。現在學正是時候,明年開春剛好可以馬上應用在新案子上面。
***
學會Design Pattern,有以下幾個好處:
- 找工作很有用。許多軟體開發的職缺,尤其是薪水比較高的職缺,都會列上「熟悉設計模式」這一點。就算沒有列出來,在口試的時候,也經常會被問到。把GoF的23個設計模式都學會,相信找工作的時候,鄉民們會比面試官懂得還多。
- 自己設計軟體的時候可以用,設計出比較容易擴充與維護的軟體。
- 比較容易看懂與學會如何使用別人開發的元件或類別庫(例如JDK、.NET或是許多開源軟體,都套用了很多Design Pattern)。
- 成為軟體架構師的先修訓練。每一個Design Pattern都可算是一個迷你版的軟體架構,而許多軟體架構本身也是一種pattern(architecture pattern,架構模式)。學會Design Pattern可以奠定日後成為軟體架構師的基礎。
- 不要被同事或屬下欺騙。這算什麼好處?曾經有一位專案經理來上Design Pattern的課,他已經不需要自己動手寫程式,他來上課的理由,是希望能夠對於Design Pattern有一定的了解,日後對於程式設計師所訂出來的開發時程,或是和程式設計師溝通軟體開發問題的時候,可以不要差距太遠,或是因為完全不懂而被程式設計師牽著鼻子走。或者,有時候你的同事或是下屬會跟你「唬爛」,說他套用了多少個pattern,有多麼厲害、多麼偉大。如果完全都不懂,很容易被蒙騙過去。
報名網址再貼一次:
- Design Patterns這樣學就會了:入門實作班,10月18、19、25(六、日、六)。
- Design Patterns這樣學就會了:進階實作班,11月01、02、09(六、日、日)。
***
友藏內心獨白:早學早用。
沒有留言:
張貼留言