模块化的设计可以方便分工和复用,封装底层功能,是系统工程的一种有效范式,在建筑工程,软件工程等领域中有广阔的应用。 可是模块化并非万能药,须知多模块的系统,模块间的连接往往给系统引入更多的风险节点。例如把鼠标通过USB链接到电脑,鼠标的USB, USB线,电脑的USB和驱动这些环节都会成为潜在的风险节点。当一个模块拆成两个模块时,会引入四个层面的风险: 两个模块的分别接口,链接的链路以及协议。 我们对系统的整体性认识越深刻,这些脆弱的环节就越少。基于朴素有效的原则,复杂的模块化设计的引入是为了解决更复杂的问题。
但是这里不要混淆了概念模块化和系统模块化。以软件工程为例,就算系统不模块化拆分,代码层面一样可以模块化管理。 系统模块化的前提是概念模块化的效用得到验证,把概念的模块变成系统的模块是为了功能更加内聚。大脑容量毕竟有限,若没有对概念进行有效模块封装变成一大块,那么大脑中只能塞满零散片段,也这是为什么懂得思考的人可以理解的问题尺度更大。
我们对系统的整体性认识越深刻,这些脆弱的环节就越少。 庄子的大小之辩其实也说透了系统封装的核心了。
网友评论