第四章 贵族专制、民主政治和系统设计
在系统设计中,概念完整性应该是最重要的考虑因素。软件的目的是使计算机更加容易使用,能用最简洁和直接的方式来指明事情的系统是最好的,而简洁和直白就来自系统概念的完整性。系统的每个部分必须反映一致的原理需求,保持统一的设计思想。
但是,绝大多数的系统都体现出了概念差异和不一致性。这是由于设计被分成了由若干人完成的若干任务。为了保证概念完整性,因此要求设计必须由一个人,或者非常少数互有默契的人员来实现。这就是本章提及的“贵族专制统治”。
然而,大型的项目为了满足进度要求,必须要投入大量的人手。为了满足大型项目的概念完整性,可以将系统的体系结构方面的工作与具体实现进行分离。“体系结构是陈述发生了什么,而实现描述的是如何实现”。书中用“时钟”做了举例:当一个小孩知道了时钟的外表结构(表盘、指针),他就能辨认时间。而时钟的具体实现,则是表盘里多种动力提供装置中的一种,以及众多精度控制方案的一种。
系统的结构师,就是“贵族专制”的少数人。他们需要一直处在解决用户问题,实现用户利益的核心地位进行体系结构设计工作,从而保证概念的完整性。而编程人员,则在给定的体系结构下实现设计,编程人员的实现工作也是具有创造性的,他们可以融入他们自己的创意以及各种想法,这就是他们的“民主政治”。在外部体系结构规定下进行实现,能够增强实现小组的创造性,一旦他们将注意力集中在没有人解决过的问题上,创意就开始奔涌而出。在没有体系结构限制的实现小组中,在进行结构上的决策时,会出现大量的想法和争议,对具体实现的关注就少了。