读书笔记-《一线架构师实践指南》-第Ⅲ部分 Refined Architecture阶段
首先第一部分也就是十一章先讲了一个小故事,说明出概念架构与细化架构之间不能画等号,架构师应该记住的是:方案="项目 + 需求 + 架构",方案 不等于架构的全部。总的来说就是概念架构远远不能满足团队的并行开发,仅仅把概念架构中的设计部分直接作为《架构设计文档》提交是绝对不可取的。
那么到底什么才是细化架构(Refined Architecture)呢?它是架构设计的两个层次,分别对应于“概念级”解决方案和“规划级”解决方案,用图描述即为如下所示
不同的人看待架构是不一样的,作者一开始便举例说明了,而架构师需要从不同的角度为不同的开发人员提供服务,所以架构的作用显得非常重要,而多视图方法,一种具有分而治之思维和一定程度上分离了不同涉众关注点的方法就可以很好的去解决这个问题。作者便提出了五视图方法,从不同角度,规划分割与交互。五视图方法包含以下几个视图:
这其中每种视图都对应着一种角度,也是一组技术关注点。详图如下所示:
在逻辑架构这一章,首先说了逻辑架构中划分子系统有三种必用的策略:1,分层的细化,2,分区的引入,3,机制的提取。然后说明了对软件进行模块化设计是为了解决复杂性更大的问题,我们必须记住,分是手段,合才是目的,无法和在一起的支持更高级的功能模块的分法是毫无意义的,所以我么在设计接口是需要针对具体的上下文,也就是基于协作来去设计接口,这是非常重要的。最后说了逻辑架构设计的思维套路就是质疑驱动,我们在设计一款软件的时候,要永远带着质疑精神,不断地去质疑,去修改,再接着质疑,不断地完善它,这是一个优秀的架构师很宝贵的品质。
在第14章 物理架构、运行架构、开发架构中,在首先讨论了物理架构的必要性:增加硬件=增加计算能力,不等于软件的实际服务能力增强。从最终目标层面,决策要兼顾多方涉众的不同利益,可从“攻”与“守”两个方面理解:1、高性能(攻)2、持续可用性(攻)3、可伸缩性(攻)4、经济性(守)5、技术可行性(守)6、易维护性(守)。