作為一個程式員,對於模組化自然是不陌生的,因為我們一直在說模組化。以前我們說OOP,現在說SOA,其實不都是模組化嘛。但是,對於模組化,我們的認識有多深呢?
《設計規則》一書從比較抽象的概念,向我們說明了什麼是設計,什麼是模組化,以及模組化所帶來的好處,最後是如何?模組化。模組化不僅是技術層面的設計,還影響了社會層面的經濟制度設計,包括對合約和公司制度的要求。
所謂設計工作,就是在一堆的設計參數中做出選擇,以達到最優解。但是參數之間是相互依賴的,要取得最優解並不是那麼容易的,需要迴圈往複的權衡。這個過程可能會很長,互動的成本會很高,特別是對於一個複雜的系統。
模組化就是為了減少循環相依性,減少耦合,提高設計的效率。為了做到這一點,我們需要有一個設計規則,所有的模組都在這個規則下進行設計。良好 的設計規則,會把耦合密集的設計參數進行歸類作為一個模組,並以此劃分工作任務。而模組之間彼此通過一個固定的介面(所謂的可見參數)進行互動,除此之外 的內部實現(所謂的隱參數)則由模組的Team Dev進行自由發揮。
公司的產生,其實跟模組化的關係是很重大的。對於依賴型的系統,為了減少互動的成本,所有的設計人員必須是在一個公司內部--公司的產生就是 為了減少交易成本。對於模組化的系統,因為模組間的互動比極少,溝通的成本比較低,從而使得不同的模組可以由不同公司來開發,而不會導致過高的交易成本。 與此同事,我們需要一些制度來支撐整個的公司體系,比如產權保護機制,合約約束等。
模組化,一開始可能並不能達到最優解,但是因為允許內部實現創新,所以增加了選擇權,最終就可以獲得比較高的整體收益。比如IBM PC的開放體系,使得IBC相容機大量出現,造就了眾多的硬體生產廠商,比如今天聯想和戴爾等。而Apple則走的是封閉的路線,雖然Apple的產品很 酷很炫,那也只是Apple公司一家的。看看MacWorld就知道了,就是展示自家的產品,一群狂熱的Fans在吹捧。而IBM則創造了一個產業,一批 的廠商得以生存和發展,更多人在參與創造價值,更多的人獲得了好處。
電腦的模組化體系並不是從一開始就有的,《設計規則》一書就以IBM 360系統為主線講述了這個曆程。從IBM 360系統開始,現代電腦架構體系開始形成了,也因此而分化出了各種不同的模組比如CPU,主板,晶片集,匯流排,顯示卡,硬碟以及作業系統等等。許多硬 件裝置廠商,就是IBM的員工出去創辦的,因為他們瞭解IBM 360系統的設計規則,瞭解模組化內部蘊藏的無限創新機會,因此得以在一個模組內部開創自己的一片廣闊天地。與硬體的快速發展不同,軟體業在模組化方面的 進展一直比較緩慢,直到如今亦是如此。
IBM 360系統真是一個了不起的創舉,參與的人以及旁觀的人都從中吸取了大量的養分,比如著名的《人月神話》也是從這個系統的經驗教訓來講軟體工程的。所以說,國家搞登月計劃什麼的,不是沒有道理啊。
《設計規則》一書的開頭幾章講得還不錯,把設計和模組化的概念說得很透徹,讓人感覺上升了一層高度。但是,後面幾章則過多偏重於定量的數學推理,顯得艱深晦澀,如果不是搞理論研究快速跳過即可。
最後的總結就是,模組化不是什麼新概念,但《設計規則》一書可以讓你對模組化有更深刻的認識。