之前觉得架构师是一份可望而不可即的工作,这辈子都不可能学习到到相关的知识了。然而在一线架构师实践指南这本书中,通过书中对于架构师的工作的描述,还有其实现的过程的分析,逐渐地从思想上拉近了与架构师认识的隔阂,架构师也是凡人,他也做着人能做的事情,只不过是站的角度不同,他能站在普通人所达不到的高度上看待整个问题,能够有未雨绸缪的思想对系统进行一个统筹规划。
第三章主要是介绍了pre-architecture的实际作用,pre-architecture是admems方法中的一个阶段,以下是书中对其的定义。
什么是Pre-architecture
Pre-architecture就是架构设计的最前期阶段,其工作目标包括:理解需求、建立需求大局观确定架构设计方向等。
Pre-architecture阶段虽然是铺垫性质的阶段,但对架构实践而言意义重大。
这个阶段能够解决以下这个这些问题:
分析业务需求和约束背后的衍生需求
发现遗漏需求
确定关键功能
确定关键质量
权衡属性之间的矛盾关系
在pre-architecture的阶段,能够帮助架构师在其构建的过程中,挖掘出业务,用户,开发的3个需求层次中中,和功能,质量,约束的3类需求中的更加与深层次的需求,这个过程对于架构实践的意义是重大的,因此在pre-architecture阶段,书中对其形象的比喻就是砍柴之前的磨刀,这有助于在架构构建的过程中让架构师清晰其需求的脉络,更加了解清晰深层次的需求,如此一来可以增加在架构成功的概率。
架构设计思维的基础:不同需求影响架构的不同原理
这就是说,需求决定架构,但不同的需求影响架构的不同原理。这个过程在之前的章节提及到了关键需求确定架构,其余需求验证架构的这个过程是一致的思想,对于不同需求影响架构的原理不同,书中对其进行了基本原理进行总结。
功能是发现职责的依据
质量是完善架构设计的动力
约束对架构的设计影响分为几类
功能:他们之间的对于架构设计的影响在书中也有明确的定义:每个功能都是由一条“职责协作链”完成的,架构师通过为功能规划职責协作链、将职責分配到子系统、为子系统界定接口、确定基于接口的架构设计的
质量:(必须)基于当前的架构设计中间成果,进一步考虑具体质量要求,对架构设计中间成果进行細化、调整、甚至推倒重来,一步步地使架构设计完善起来
质量和功能共同影响着架构设计,抛开功能、单依据质量要求设计架构是不可能的
约束:直接制约设计决策的约乘(例如“系统运行于Unix平台之上”)
转化为功能需求的约束(例如“本银行系统执行现行利率”引出“利率调整”功能)
转化为质量属性需求的约束(例如“柜员计算机平均水平不高”引出易用性需求)
第四章主要是对于需求结构化和分析约束影响进行了分析
主要对pre-architecture的前两个步骤:
即需求结构化和分析约束影响
为什么要进行需求结构化,因为需求是有结构的,对需求结构化的过程的admems方法铁建一项架构设计的真实实践,通过admems矩阵思维工具,可以全面理解需求的各个层次,将需求原本的含义多方位,立体化地展示出来,也就是见需求中的隐喻挖掘出来,来还原出更为原始的需求关系。
规格说明书中虽然对于规格有详细地进行说明,但是在规格说明书中并不是架构师奉行的圣旨,架构师站的角度是在更高的层次,需求变动是经常地,要对需求进行理性分析,然后取舍补充。
为什么分析约束影响:
因为在需求中隐藏了大量的风险因素,如果不对其静下心考虑的话,那么对于整体架构而言有时候是致命的。
书中对其的描述是:一旦你忘了它,他就会找上门来制造麻烦。
对于架构设计而言,在其中相应引入觉得的话,能够应对这些麻烦。在pre-architecture的阶段过程中就必须要对约束影响进行分析,这是属于一种未雨绸缪的思想。
admems中有个约束分类的理论,他要求我们清楚业务环境,使用环境,构建环境分别考虑客户用户,开发方涉众。
针对具体的问题,来进行针对性地考虑,对于多方用户而言往往都需要考虑这样一个过程。
约束是架构设计的上下文,也就是架构设计中的关节,连接起架构的整体部分。
正如书中所说的:没有全局观念就不可能成为架构师。约束是架构设计要决绝问题的上下文
架构师对于全局的理解必须要比普通的人站在更高的层次上,否则对于整体的设计而言都可能是致命的,或者会直接导致整体的失败,对于这种环境下,要多方面高层次地对系统,环境,涉众进行详细分析考虑
分析过程中可用推导法,查漏法等方法。