設計模式,這是我聽過最糟糕的翻譯,這個名字對於程序員來講有點高高在上,難以理解,尤爲是php,python,nodejs這些腳本語言的開發人員可能由於這個名字就忽視了設計模式的重要性。固然,除了名字之外,從更深層次,更具體來講,我以爲有三個緣由:php
可是用所謂‘簡單’的方法去寫的代碼,業務一複雜以後,你就會發現改動之痛苦,改一個功能要看完全部流程,最後不得不重構,相信不少人都會有這個經歷,這些就是設計模式解決的問題,可是精通了設計模式並不能解決全部問題,經常也要重構,設計模式絕對不是銀彈。node
設計模式其實就是架構,實現一個模塊或者功能有幾種方法,前面的人總結了他以爲最優的方法,而後抽象出來成爲一種模式,這就是設計模式。本質上這和架構沒有什麼區別。python
那架構和設計模式有沒有什麼區別呢,實際上是有區別的,某種程度上能夠這樣理解:架構是從整個系統,更宏觀的層面來總結的,而如今你們理解的設計模式,更可能是從代碼層面出發,或者框架的層面來總結的。可是這種區別並非軟件架構大師們主觀的結果,這兩個概念最開始是一個東西,可是隨着軟件複雜度的不斷增長,演化成了兩個概念。git
我以爲對於設計模式的理解是把設計模式歸併到架構的一部分,是架構的子集,重命名爲代碼架構,這樣好理解不少。程序員
我的githubgithub