分层与封装(6): 人工系统的必然结构

使用分层和封装的结构可以说是计算机系统发展的自然结果。原因有很多,一方面是为了提高系统的准确性和效率的一种手段,通过分层的缓存提高了计算机读写的效率,通过网络协议的分层提高了系统的准确性,软件系统中的封装方便了软件测试;一方面也与系统的标准化和模块化互为因果,降低系统生产成本所需要的标准化和模块化促使了分层和封装的产生,而分层和封装也帮助实现了系统的标准化和模块化;此外这也是开发团队分工协作的必然结果,由于每个个体工程师的能力都是有限的,每个人只能够负责自己的一小部分,通过分层和封装使得工程师团队之间能够进行交流合作。

这种结构带来的好处是权责明确,一旦出现问题,可以很快的对应找到具体出问题的模块,并进行修复,或者直接替换。系统在某些细节上的效率看上去是下降了,因为有相当一部分的时间花费在了系统内部模块之间的信息交换上了:比如网络通信中会在各层添加他们所需要的信息,这样实际上有效信息比率并不到100%。但从整体来看,依然保持了最优的效率,不仅是系统的效率,还包括了团队开发的效率,纠错时的效率。

这种逻辑清晰的结构也是人工系统的一个典型特征。对于计算机系统中的某一个部分,实际上背后代表的是某一个工程师、某一个团队或者某一个公司。计算机系统的运作实际上背后是这些团队和公司之间的相互协作。硬盘生产商和主板厂商商议硬盘读写的方式,在计算机系统上就体现为主板和硬盘之间的读写;网络服务商和软件厂商商议网络数据的传输协议,在计算机系统上就体现为软件和网络服务的通信。人类的分工组织体现在了计算机系统结构上。这也反映了Conway定律,一个组织设计出来的结构,一定会反映出这个组织的合作的结构。

可见的人工系统,如长城、金字塔,其背后都可以看到决策层、设计层、执行层、建造层的架构,每一层又有征发、物资、建造等模块。不可见的系统,例如政治系统,也可以看到郡县或分封的分层,以及督查军事行政的模块。这些系统能够有效工作的前提是,每个系统参与者也能按照他们规定的任务进行行动。当民夫发现工作量无法承受的时候,就会反抗这个任务,这比计算机系统一两个元件的罢工要危险,因为人类具有情绪,情绪可以传播,这种反抗可能会导致整个模块的罢工。而作为人类社会,这个模块很可能是无法替换的,可能导致整个系统的崩溃。而政治系统里,如果诸侯没有执行他们拱卫中央的设定职能,那么就会僭越中央的职能。这种在机械种有效的结构在现实中失效的原因在于忽略了每个人都有其自由意志,人在系统身份之外的想法和生活,以及人与人之间非系统规定内的交往都会导致系统的问题。

这不是说所有人都应该放弃其自由意志来适应系统,这会导致整个系统永远不会发生改变;也不是说所有人都应该完全体现其自由意志,这会导致系统的极度不稳定,和严重的安全问题。具体这个度如何把握,就是另外一个话题了。

转载于:https://my.oschina.net/u/3579120/blog/1532932

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值