引子
架构风格
人才,以及合理的人才结构,是软件公司乃至软件业发展的关键
成才,并在企业中承担重要职责,是个人职业发展的关键
从程序员到架构师转型
一个软企发展的好坏,极大的取决于如下人才因素:
- 员工素质
- 人才结构
- 员工职业技能的纵深积累
- 员工职业技能的适时更新
要让软件企业适应发展,需要:
- 定期分析和掌握本公司员工能力状况、人才结构状况
- 员工专项技能的渐进提升(如架构技能,设计重构技能)
- 研发骨干整体技能的跨越转型(例如 高级工程师向架构师,系统工程师和技术经理的转型)
提升个人技能,也是让企业获取人才的合适途径
本书价值
第一部分 基础概念
第二部分 实践过程
第三部分 模块划分
入门
需要阅读 基础概念篇 + 模块划分专题
- 基础概念篇:讲解如何运用 逻辑视图+物理视图 设计架构
- 模块划分篇:讲解模块划分的不同方法,讨论功能模块、分层架构、用例驱动的模块划分过程等内容
需要 体会 “分而治之” 和 “迭代式设计” 这两种关键思想,运用 “逻辑视图+物理视图” 设计一个系统的架构也就不那么难了
用 逻辑视图和物理视图 是从解决问题的不同角度看,从而关注一个解决问题的不同细节。相当于化大问题为小问题。
逻辑视图和物理视图 交替迭代式展开。逻辑视图逐步清晰,促进物理分布设计。反之亦然。
模块划分的四种方式
- 水平分层
- 垂直划分功能模块
- 从用例到类、再到模块
- 想到哪 切到哪
软件架构概念
组成派
软件架构关注分割和交互
可以将系统描述为计算机组件和组件之间的交互
决策派
软件架构师一系列有层次的决策
架构属于设计,但并非所有设计都属于架构。
架构涉及的决策,往往对整体质量、并行开发、适应变化等方面有着重大影响
- 模块如何划分
- 每个模块的职责为何
- 每个模块的接口如何定义
- 模块间采用何种交互机制
- 开发技术如何选型
- 如何满足约束和质量属性的需求
- 如何适应可能发生的变化