一线架构师阅读笔记02
在上一部分中我们主要介绍了我们这本书中所介绍的三个架构设计的阶段并且做了简要的分析,最为这版本书的一个介绍比较概括,书中用了很大的篇幅对其中的相关应用做了介绍。
完事开头难,所以我认为在初始阶段才是架构的关键,在预备架构阶段就是所有工作的准备阶段,其工作目标包括:理解需求,建立需求大局观、确定架构设计的方向。可以看出预备阶段是真个架构设计的总基调。用书中的话说,预备架构就是在“磨刀”,而后边的两个方面才是“砍柴”。虽然预备阶段的产出,并不是特别大,他是一个过渡阶段,但是其意义却是极其重大的。要知道,任何的需求都可定位于业务级需求、用户级需求、开发级需求三个层面中的某一层,同时也必属于功能、质量、约束3类需求的某一类。如此一来,便便于梳理系统的脉络,把握层次关系了。如果架构师在这一阶段理解有误也就会出现文中所说的给猴子送骨头的结果,当然这并不符合用户的实际需求,虽然满足了猴子收礼物的功能需求,但是用户并不满意得到的这一份礼物。那么这个功能也就毫无意义了。所以架构师在对需求的理解、权衡、取舍和补充这一块的能力要尤为突出。
类似于看病就找老中医的思维方式,普遍认为经验丰富的架构师就一定优秀。这种唯经验论显然是片面的,一名优秀的架构师不仅要具有一定的经验,还必须掌握超越具体项目的、更具有普遍意义的方法和技巧。不能就项目而论,要有一个更远的思维。是的需求决定架构,但是满足的需求就真的可以了吗?就像之前网上传的那个银行的问题,银行为了收取意见,设立了邮件地址,并公布了出来,从功能需求上来讲,没有任何错误,完成功能没有问题,可以达到需求所规定的,但是呢,一个邮件地址长的出奇,用户对它满意吗,使用起来方便吗,这就是架构师在设计时对关键属性,以及约束的忽视。要知道,功能是发现职责的依据,而质量才是完善架构的动力,不考虑质量的系统时无法走出实验室的。
所以在预备架构阶段主要总结为以下几点,分析约束影响,识别隐含需求;确定关键质量,明确关键质量之间的优先级;确定关键功能,便于更有针对性地分配有限的架构设计时间。