準備了好久的設計模式教程,終於在昨天週末錄製完成。當晚上傳到網易雲課堂,第二天就通過了稽核,這次網易工作人員的工作效率還是相當可以的。
http://study.163.com/course/courseMain.htm?courseId=752006#/courseMain
注意,該教程設定了收費模式,19.9元。不過1-5課時是免費看的,我覺得自己大體的思路,都在2-5課時裡說明了。因此建議大家看看2-5課時,或許能與你產生共鳴,或許能給你帶來啟發,或許你還能給我反饋一些建議和指導,我都虛心接受。
1. 開始
從半年前,我就開始重新整理設計模式的知識。之前自己也零零散散知道一些,不是很系統,於是當時就決定好好整理一下。最好是能錄製一個教程,一來和大家分享知識,二來自己通過講解鞏固知識。於是就開始查閱各種資料,《設計模式——可複用軟體的基礎》《松本行弘的程式世界》《大話設計模式》《設計模式之禪》《head first設計模式》這些書籍,以及平時查閱的cnblogs、csdn、javaeye(iteye)這些網站的資料。。。。等等,在學習過程中,自己也寫了很多學習筆記。
學習的過程是漫長的,也是枯燥的,而且像我們們這種上班族,也只能利用業餘的時間來學習。說實話,能一直堅持下來真的不容易,因為我比別人不知道犧牲了多少玩遊戲、看電影、看電視劇的時間,當然,連陪女友的一部分時間都犧牲了。
2. 學習中的思考
“學而不思則罔”,這句話說的一點沒錯。我之前不止一次的學過設計模式,每次都是今天學明天忘,久而久之就沒有了動力,半途而廢,不了了之了。無論學什麼或者做什麼,只要有了這種狀態,說明你沒有抓住方法。這與你是否努力無關。之前我學設計模式,每次也都很努力,不偷懶,但是還是學不會。
這一次,我嘗試著去思考了一下,接著還真有了一點點想法。
其實,學習設計模式的目的,是為了更好的設計系統。系統之所以需要設計,是因為系統要慢慢變化,有需求變更,有產品升級,系統慢慢變得大了,維護的人員多了,就需要各種規則約束。那麼如何去應對這種大、人多、業務複雜、變化多樣的系統呢?答案就是更好的設計。這其實也是我有了幾年的工作經驗之後,才慢慢體會出來的,所以沒有工作經驗的人,估計是沒有這個體會。那麼,該如何設計系統呢?有沒有一些指導?——大難就是設計原則。我們在設計系統時候,都是以設計原則為指導的。你知道設計模式,不知道設計原則,白搭。但是設計原則過於抽象,可以通過學習設計模式來理解設計原則。
所以,首先你要明白,你要的東西是“設計”,如何更好的設計,設計的指導方針。而那些模式,只不過是些套路,是一些具體的解題思路罷了。
我們在做系統設計時候,會在設計過程中遇到各種各樣的問題,這個不可否認。有些問題久而久之,每個都都會遇到,就形成了一些固定的解決思路,而這些解決思路,就是設計模式。如果用這一條線來理解設計模式,一點兒都不難。即:設計過程 -> 遇到了問題 -> 總結典型問題 -> 總結解決辦法 -> 歸納出23種設計模式
我順著這個思路慢慢細化,就寫了一套很詳細的解決方案,並在當時釋出到園子中。不過很遺憾,關注量不多。
3. 從設計到模式
雖然大家關注不多,但是我還是沒有放棄。這個思路,這個想法,既然能幫助我理解設計模式,那麼它肯定可以幫助其他人。於是我就繼續做下去,直到昨天錄製完成了這個教程。
我把它起名叫“從設計到模式”,這個名字還沒有人叫過,算是我的一個小創新。其實好好分析,這樣叫是有意義的。我們在理解設計模式的時候,難道不是從設計到模式嗎?“設計模式”這是兩個詞,“設計”是抽象的,“模式”是具體的。設計和模式分開,才能把設計模式理解透徹。
不信,大家去看看教程2-5課時,免費預覽。有意見或者問題,可以給我留言。
http://study.163.com/course/courseMain.htm?courseId=752006#/courseMain