《人月神话》阅读笔记02
今天我阅读了人月神话-贵族专制和民主政治。
以前呢,我总觉得软件开发的时候只要每个人把自己要做的功能实现了,然后随意整合起来就够了,其他的架构什么的都不重要。
但读了这一章,在这个章里面一个最重要的关键词就是概念完整性,不论你软件项目规模的大小都,不论你采取的软件生命周期方法论,我们都不要忽视了总体架构设计这个过程,而总体设计的一个重点就是概念完整性。概念完整性是系统设计首要考虑的内容,为了反映一系列连贯的设计思路,宁可省略一些不规则的特性和改进,也不提倡独立和无法整合的系统,哪怕它们其实包含着许多很好的设计。
如何保证概念完整性,首先提到的就是系统设计要掌握到一个人少数已经互有默契的人员来实现。举个简单的例子如做网页设计,某一个人的设计可能配色和风格并不是最好,但是由于是一个人他可以保持整个系统和页面风格的统一,这比多个人设计搞的五花八门要好的多。
在现在软件系统的易用性越来越成为我们关注的内容,对于给定级别的功能,能用最简洁和直接的方式来指明事情的系统是最好的。而简单和直白正来自于概念完整性,这让我们对概念完整性进行了拓展,一个是涉及到功能和非功能性需求的系统架构设计,一个是涉及到用户交互和界面的交互设计,这两方面都是概念完整性的内容,随着专业化的分工,这两方面概念完整性的保证往往要分配到两个独立的角色来完成即:架构设计工程师和交互设计工程师,因此这两个人之间的沟通和协作就显得更加重要了。
所以说总体架构设计的重点就是理清楚整个系统的骨架和体系结构,架构设计是从实际的需求到抽象的实现之间重要的衔接。体系结构描述的是发生了什么,而实现描述的是如何实现。