作为一个程序员,对于模块化自然是不陌生的,因为我们一直在说模块化。以前我们说OOP,现在说SOA,其实不都是模块化嘛。但是,对于模块化,我们的认识有多深呢?
《设计规则》一书从比较抽象的概念,向我们说明了什么是设计,什么是模块化,以及模块化所带来的好处,最后是如何实现模块化。模块化不仅是技术层面的设计,还影响了社会层面的经济制度设计,包括对合同和公司制度的要求。
所谓设计工作,就是在一堆的设计参数中做出选择,以达到最优解。但是参数之间是相互依赖的,要取得最优解并不是那么容易的,需要循环往复的权衡。这个过程可能会很长,交互的成本会很高,特别是对于一个复杂的系统。
模块化就是为了减少循环依赖,减少耦合,提高设计的效率。为了做到这一点,我们需要有一个设计规则,所有的模块都在这个规则下进行设计。良好 的设计规则,会把耦合密集的设计参数进行归类作为一个模块,并以此划分工作任务。而模块之间彼此通过一个固定的接口(所谓的可见参数)进行交互,除此之外 的内部实现(所谓的隐参数)则由模块的开发团队进行自由发挥。
公司的产生,其实跟模块化的关系是很重大的。对于依赖型的系统,为了减少交互的成本,所有的设计人员必须是在一个公司内部--公司的产生就是 为了减少交易成本。对于模块化的系统,因为模块间的交互比极少,沟通的成本比较低,从而使得不同的模块可以由不同公司来开发,而不会导致过高的交易成本。 与此同事,我们需要一些制度来支撑整个的公司体系,比如产权保护机制,合同约束等。
模块化,一开始可能并不能达到最优解,但是因为允许内部实现创新,所以增加了选择权,最终就可以获得比较高的整体收益。比如IBM PC的开放体系,使得IBC兼容机大量出现,造就了众多的硬件生产厂商,比如今天联想和戴尔等。而Apple则走的是封闭的路线,虽然Apple的产品很 酷很炫,那也只是Apple公司一家的。看看MacWorld就知道了,就是展示自家的产品,一群狂热的Fans在吹捧。而IBM则创造了一个产业,一批 的厂商得以生存和发展,更多人在参与创造价值,更多的人获得了好处。
计算机的模块化体系并不是从一开始就有的,《设计规则》一书就以IBM 360系统为主线讲述了这个历程。从IBM 360系统开始,现代计算机架构体系开始形成了,也因此而分化出了各种不同的模块比如CPU,主板,芯片组,总线,显示卡,硬盘以及操作系统等等。许多硬 件设备厂商,就是IBM的员工出去创办的,因为他们了解IBM 360系统的设计规则,了解模块化内部蕴藏的无限创新机会,因此得以在一个模块内部开创自己的一片广阔天地。与硬件的快速发展不同,软件业在模块化方面的 进展一直比较缓慢,直到如今亦是如此。
IBM 360系统真是一个了不起的创举,参与的人以及旁观的人都从中吸取了大量的养分,比如著名的《人月神话》也是从这个系统的经验教训来讲软件工程的。所以说,国家搞登月计划什么的,不是没有道理啊。
《设计规则》一书的开头几章讲得还不错,把设计和模块化的概念说得很透彻,让人感觉上升了一层高度。但是,后面几章则过多偏重于定量的数学推理,显得艰深晦涩,如果不是搞理论研究快速跳过即可。
最后的总结就是,模块化不是什么新概念,但《设计规则》一书可以让你对模块化有更深刻的认识。
《设计规则》一书从比较抽象的概念,向我们说明了什么是设计,什么是模块化,以及模块化所带来的好处,最后是如何实现模块化。模块化不仅是技术层面的设计,还影响了社会层面的经济制度设计,包括对合同和公司制度的要求。
所谓设计工作,就是在一堆的设计参数中做出选择,以达到最优解。但是参数之间是相互依赖的,要取得最优解并不是那么容易的,需要循环往复的权衡。这个过程可能会很长,交互的成本会很高,特别是对于一个复杂的系统。
模块化就是为了减少循环依赖,减少耦合,提高设计的效率。为了做到这一点,我们需要有一个设计规则,所有的模块都在这个规则下进行设计。良好 的设计规则,会把耦合密集的设计参数进行归类作为一个模块,并以此划分工作任务。而模块之间彼此通过一个固定的接口(所谓的可见参数)进行交互,除此之外 的内部实现(所谓的隐参数)则由模块的开发团队进行自由发挥。
公司的产生,其实跟模块化的关系是很重大的。对于依赖型的系统,为了减少交互的成本,所有的设计人员必须是在一个公司内部--公司的产生就是 为了减少交易成本。对于模块化的系统,因为模块间的交互比极少,沟通的成本比较低,从而使得不同的模块可以由不同公司来开发,而不会导致过高的交易成本。 与此同事,我们需要一些制度来支撑整个的公司体系,比如产权保护机制,合同约束等。
模块化,一开始可能并不能达到最优解,但是因为允许内部实现创新,所以增加了选择权,最终就可以获得比较高的整体收益。比如IBM PC的开放体系,使得IBC兼容机大量出现,造就了众多的硬件生产厂商,比如今天联想和戴尔等。而Apple则走的是封闭的路线,虽然Apple的产品很 酷很炫,那也只是Apple公司一家的。看看MacWorld就知道了,就是展示自家的产品,一群狂热的Fans在吹捧。而IBM则创造了一个产业,一批 的厂商得以生存和发展,更多人在参与创造价值,更多的人获得了好处。
计算机的模块化体系并不是从一开始就有的,《设计规则》一书就以IBM 360系统为主线讲述了这个历程。从IBM 360系统开始,现代计算机架构体系开始形成了,也因此而分化出了各种不同的模块比如CPU,主板,芯片组,总线,显示卡,硬盘以及操作系统等等。许多硬 件设备厂商,就是IBM的员工出去创办的,因为他们了解IBM 360系统的设计规则,了解模块化内部蕴藏的无限创新机会,因此得以在一个模块内部开创自己的一片广阔天地。与硬件的快速发展不同,软件业在模块化方面的 进展一直比较缓慢,直到如今亦是如此。
IBM 360系统真是一个了不起的创举,参与的人以及旁观的人都从中吸取了大量的养分,比如著名的《人月神话》也是从这个系统的经验教训来讲软件工程的。所以说,国家搞登月计划什么的,不是没有道理啊。
《设计规则》一书的开头几章讲得还不错,把设计和模块化的概念说得很透彻,让人感觉上升了一层高度。但是,后面几章则过多偏重于定量的数学推理,显得艰深晦涩,如果不是搞理论研究快速跳过即可。
最后的总结就是,模块化不是什么新概念,但《设计规则》一书可以让你对模块化有更深刻的认识。