終於來到了最後一天,希望看完前29篇文章的人能夠把所學的知識內化,當寫程式的時候有碰到什麼問題,可以先想想看有什麼方法能夠優化現階段的程式,並且減少不必要的維護,降低錯誤的發生率,而Design Pattern就當作是修理程式的工具一樣,舉最簡單的例子來說,我們可以從家裡走到家裡附近的公車站牌,但如果我們使用腳踏車,就可以比走路的時間少花10分鐘;如果我們使用機車,花費的時間又可以比腳踏車少5分鐘;如果我們使用汽車,又會比機車花更少的時間。
同樣一個問題,也就是從家裡走到附近的公車站牌,可以使用不同種交通工具,來解決當前的問題,不過哪一個是最適當的方法,這就需要好好思考了,假設使用腳踏車,會比走路到公車站牌還要來得快,提高了效率;若是使用機車,確實大幅提高了效率,不過你可能要先在公車站牌附近找機車的位子停,這也會提高解決問題的成本;倘若使用汽車,雖然已效率來說是最佳解,但也會碰到與機車一樣要找停車位的問題,而這個問題的成本可能又比機車還要來得高。
我們拉回程式問題,不同種交通工具就好比是不同的Design Pattern一樣,一種問題你可能可以用不一樣的方式來解決,但是解決問題最好的方式就是要使用最佳解,而最佳解要怎麼找,必須要去比較不同的方式會不會產生其他衍生的問題出來,導致解決問題的成本提高,就像是汽車和機車的例子,而這都是需要一些經驗的累積,才能夠做到的!
這30天學完以後,給自己一點時間去慢慢的消化、好好的吸收,將來碰到問題的時候,才能不慌不忙的解決。俗話說的好:「師父引進門,修行在個人。」,也許有很多地方沒有說明得很清楚,或是不夠仔細,但也有很多地方正等著你去發掘、去探索,不要忘了,要保持一顆學習的心,那些有疑惑的地方就從你未知的領域開始尋找答案吧!