课程目标:
站在新的起点,走出程序员向架构师转型的第一步。
从高屋建瓴的角度出发,理解架构的意义。
横向比较热门软件架构风格,纵向探讨架构设计方法。
为后续架构师能力、架构设计原则、模式和实践做好铺垫。
课程导航:
清晰软件架构的定义和概念。
深度分析软件架构的意义和影响力。
明确软件架构的风格。
了解三种主流架构设计方法(ABSD、DSSA、AT)
软件架构认知(清晰软件架构定义)
本章概述
What:软件架构两派之争、大师眼中的软件架构。
why:软件架构的目的-做IT界的莫扎特。
How:软件架构的发展阶段。
软件架构的定义和两大派系之争:
少林 vs 武当
组成派(少林):所有的架构,都是由组件组成,一个系统是由多个大组件组成,大组件是有一个个小组件组成。
武当(决策派):一切的决定都来自于决策。
组成派
天下武功“组件”,-代码包、模块、领域、CBM、SOA。
软件系统架构-就是描述计算机组件和组件的交互。
架构设计-拆解、定义、官联组件,画图和实现。
决策派
“决策”山上有真人-架构的真谛是架构决策,是智慧和思维。
软件系统架构-是由一个个决策组成的有机整体
架构设计-根据需求、限制决定技术、框架和实现。
组成派:中间灰色的部分是企业服务总线,相当于骨架。每个服务都拆分成组件等。实实在在干活的架构师一般都是组成派。
决策派:决策派很注重于流程。 以说为主的架构师,一般是架构设计师的评委级。
建议是两派结合。
大师们眼中的软件架构
BA大师-结构、元素、内部、外部。-强调组成。
BO大师-组件、连接件、约束、需求和理智。-中间派。
G大师-模块、过程、管道、消息、条件。
I大师-组件、关系、环境、结构、演化。
J大师- 元素、接口、子系统、协作、风格。
P大师-处理元素、数据元素、连接元素。
W大师-决策、方向、过程-决策派
Z大师- 组件是我的眼,决策是我的手。-中间派
软件架构的目的
做IT界的莫扎特
桥梁-从“产品”听众获取灵感。
指引-指引“研发”乐队完成演奏。
分割-将长篇大作切割成乐章。
交互-将乐章和声部交叠协奏。
决策-在思考中挣扎,在决策中完美。
演进-G小调第40交响曲-悲凉中前进。
软件架构的发展阶段
软件架构的过去
语言:C、Java、Python、Go。
结构设计:数据结构、设计模式、算法。
统一建模:UML、CBM。
软件架构的现在
多视角:逻辑、物理、应用、技术、功能、部署。
体系框架:ASSD、DSSA、AT。
软件架构的未来
云化:IaaS、PaaS、SaaS资产复用。
演进式:拆迁者、修缮者、绞杀者。
架构师岗面试指导
面试题1
作为架构师,你的日常工作主要有哪些?
题眼
工作广度;组成和决策;(架构师)莫扎特6大作用。
加分项
方法论完整、新架构框架、新技术框架。
面试题2
作为架构师、有什么推崇的书或者大师。
题眼
学习能力、知识体系。
加分项
体系书籍、新技术书籍、大师互动分享。
面试题3
你在架构设计过程中碰到的难点?
题眼
案例深度;决策派思路;从莫扎特6大作用出发。
加分项:决策依据;理论->实际->理论。