架构最重要的一点,就是它能把难以处理的大问题分解成便于管理的小问题。——Eric Brechner,《代码之道》

本篇记录6大步骤中的第五步:细化架构设计。包括如下内容:

  • 程序员向架构师转型的关键突破
  • 5视图方法实践-15个技能项

1、程序员向架构师转型的关键突破

程序员向架构师转型,必然要经历的一个突破是“思维方式的突破”。

1.1什么是架构视图

之前我们讲到,什么是架构视图,它是一种设计架构、描述架构的核心手段。通过“架构视图”作为分而治之的手段,使架构师可以分别专注于架构的不同方面、相对独立地分析和设计不同“子问题”。
出门左转回顾一下《《软件架构设计》学习笔记–3–软件架构视图》
2视图方法相比,5视图方法更全面地覆盖了架构设计的各个方面,因而更适用于针对中大型系统进行设计。

软件架构去哪里学 软件架构师教程_架构设计

1.2关键突破

从程序员向架构师转变的“思维方式的突破”,指的是“系统思考”。对软件研发而言,系统思考就是以整体的观点对复杂系统构成部分之间的联系进行研究。就是认识到复杂系统之所以复杂,正是因为系统各个部分之间的联系。如果要理解系统,就必须将其作为一个整体进行审视。5视图方法正是提供了多个视角以洞察复杂系统的构成部分及其之间的联系。使用系统思考方法可以有效解决设计时的“思维混乱”的问题。

1.35视图的意义

看似复杂的5视图方法,其思想并不复杂,因为每个视图都是从特定角度规划系统的分割与交互,都是(架构的定义)“组件+交互”的一种体现:

  • 逻辑架构=职责单元+协作关系
  • 开发架构=程序单元+编译依赖关系
  • 运行架构=控制流+同步关系
  • 物理架构=物理节点+拓扑连接关系
  • 数据架构=数据单元+数据关系
    5视图方法错落有致地将众多技术关注点分成“群落”,“群落”内高聚合,“群落”间松耦合,有利于架构师设计思维的有序展开。

2、5视图方法实践-15个技能项

一种 优秀的多视图方法,应该面向“岗位职责”,比较完善地覆盖架构设计的各项工作内容。如下图所示,我们将“架构师岗位”细化架构设计环节的各项设计工作内容明确、有条理地归到5个架构视图中。

软件架构去哪里学 软件架构师教程_架构师_02