在架构师们焦虑和困惑的时候,一线架构师的学习指南应运而生

一线架构师: 6个经典困惑

一线架构师经常 面对的实践困感,可以用图1-1来概括。其中,涉及了“4个实际问题的困惑”,以及“两个职业发展的困惑”。

在架构师们焦虑和困惑的时候,一线架构师的学习指南应运而生_第1张图片

4个核心主张

画龙须点睛。

在介绍具体方法之前,先来阐释本书的4个核心主张:

方法体系是大趋势。

质疑驱动的架构设计。

多阶段方法。

内置最佳实践的方法。

这4个核心主张可帮助读者领会ADMEMS方法之精髓。

ADMEMS 方法体系: 3个阶段, 1个贯穿环节

作为方法体系,ADMEMS方法通过3个阶段和1个贯穿环节,来覆盖“需求进,架构出”的架构设计完整工作内容。

图1-5说明了“3个阶段”在整个方法体系中的位置。具体而言:

预备架构 (Pre-architecture) 阶段(简称PA阶段)。

最大误区: 架构师是技术人员不必懂需求。

实践要点:摒弃“需求列表”方式,建立二维需求观。

思维工具: ADMEMS矩阵等。

概念架构 (Conceptual Architecture)阶段(简称CA阶段)。

最大误区:概念架构=理想设计。

实践要点:重大需求塑造概念架构。

思维工具:鲁棒图、目标-场景决策表等。

细化架构(Refined Architecture)阶段(简称RA阶段)。

最大误区:架构=模块+接口。

实践要点:贴近实践的5视图法。

思维工具:包图、包-接口图、灰盒包图、序列图、目标-场景决策表等。

在架构师们焦虑和困惑的时候,一线架构师的学习指南应运而生_第2张图片

ADMEMS方法体系包含3个阶段

值得强调的是,上述3个阶段之间的先后顺序有极大的实际意义,否则就不能称其为“阶段”了:

试想,在Pre-architecture阶段对需求理解不全面( 例如遗漏了需求)、不深入(例如没有发现“高性能"和“可扩展”是两个存在矛盾的质量属性),后续设计怎会合理?

试想,Conceptual Architecture 阶段的概念架构设计成果没有反映系统的特点就“冲”去做Refined Architecture设计,是不是必然造成更多的设计返工?

“1个贯穿环节”,指的是对非功能目标的考虑。

概念架构的故事

架构新手和有经验架构师的区别之-一,在于是否懂得,并能有效地进行概念架构设计。作为架构新手,尤其害怕碰上自己没做过的系统;系统较大时,一旦祭出“架构=模块+接口”的法宝却不太奏效,架构新手就往往乱了阵脚。相反,有经验的架构师不会-上来就关注如何定义“接口”,他们在大型系统架构设计的早期比较注重识别重大需求、特色需求、高风险需求,据此来设计概念架构。

另外,概念架构还是投标及售前工作的有力武器。金牌售前和普通售前的一一个重要区别是,能否清晰地讲解概念架构,并借此说明“客户关心的价值如何实现、担心的问题如何解决”。

探究:“方案”与“架构”的关系

究其原因,这是因为概念架构难以支持并行开发。要支持开发组相对独立地进行工作,须要提供指导和限制作用更明确的“规约”一级的设计。

具体而言,细化架构和概念架构之间存在如下典型差异:

接口。在细化架构中,接口占据非常核心的地位,而概念架构并不关心明确的接口定义(只有抽象的组件和抽象的交互机制)。

子系统。细化架构重视通过子系统和模块来分割整个系统,并且子系统往往有明确的接口;而概念架构中只有抽象的组件,这些组件没有接口,只有职责一般是处理组件、数据组件或连接组件中的-种。当然,概念架构中也有“大组件分解成小组件”的设计决策,但并非子系统的含义。

交互机制。细化架构中的交互机制应是“实在”的,如基于接口编程、消息机制或远程方法调用等;而概念架构中的交互机制是“概念化”的,例如“A层使用B层的服务”。

就是典型的例子,这里的“使用”到了细化架构中可能基于接口编程、消息机制或远程方法调用等其中的一种。

当然,概念架构和细化架构都满足软件架构的定义一-无论是“架构= 组件+交互”,还是“架构=重要决策集”。

方案的制定,为什么需要项目负责人、需求人员、架构师等共同参与呢(如图11-1所示) ?

因为方案涉及的工作内容不仅仅是架构,还涉及项目管理和需求工作。“方案” 和“架构”的联

系与区别如下:

方案包含- -定的架构内容。

方案涉及的架构基本在概念架构一级。

架构设计的工作还远未完成。

在架构师们焦虑和困惑的时候,一线架构师的学习指南应运而生_第3张图片

方案制定需要项目负责人、需求人员、架构师等角色的共同参与

所以,架构师应记住:

方案=“项目+需求+架构”的总览

方案≠架构的全部

逻辑架构

划分子系统、定义接.....这些典型工作都属于逻辑架构设计的范畴。

本章阐释ADMEMS 5视图方法中逻辑架构视图的设计:

先从划分子系统的3种必用手段讲起;

随后,纠正“我的接口我做主”这种错误认识,代之以“协作决定接口”的正确理解;

而且,本章将解析逻辑架构设计的整体思维套路,解决一线架构师郁闷已久的“多视图方法只讲做什么、不讲怎么做”的问题:

最后,总结逻辑架构设计的10条经验要点。

相对于逻辑架构设计而言,物理架构视图的设计是不是就乏善可陈呢?不。一线架构师最缺的是物理架构的设计思维。

从设计结果层面,决策无非围绕物理节点、网络、软件单元、数据单元等内容展开。

但是,思维当中经历了哪些思考、判断和权衡呢?

从最终目标层面,决策要兼顾多方涉众的不同利益,可从“攻”与“守”两个方面理解:

高性能(攻)。

持续可用性(攻)。

可伸缩性(攻)。

经济性(守)。

技术可行性(守)。

易维护性(守)。

从思维要点层面,“开销”和“争用”是核心。架构师正是通过“降低开销”、“避免争用”来实现高性能、高可伸缩性等最终目标的:

如何降低物理节点“内”的计算开销?

如何降低物理节点“间”的通信开销?

如何避免物理节点“内”CPU、内存、硬盘等资源的争用?

如何避免物理节点“间”网络的带宽资源冲突?

至此,我们了解了物理架构设计的理性思维框架,如图14-2所示。

在架构师们焦虑和困惑的时候,一线架构师的学习指南应运而生_第4张图片

物理架构设计的理性思维框架

由于篇幅过长,小编在这里就不一一为大伙介绍了,有需要【一线架构师实践指南】技术文档的小伙伴,只需要关注+转发+评论,获取++++++我v x    ①⑦⑧③⑤零⑥⑧⑤⑦⑥    就可以获取了

在架构师们焦虑和困惑的时候,一线架构师的学习指南应运而生_第5张图片

你可能感兴趣的:(在架构师们焦虑和困惑的时候,一线架构师的学习指南应运而生)