架构师修炼之道(读书笔记)
2022-08-10 09:15:56 23 举报
AI智能生成
架构师修炼之道(读书笔记)
作者其他创作
大纲/内容
从工程角度定义问题
分解系统,分配职责
关注大局
在质量属性之间做出取舍
提升团队的架构技能
架构师要做什么
架构将大问题分解为容易处理的小问题
软件架构告诉大家如何协同工作
软件架构为讨论复杂设计提供了基本词汇
软件架构关注的不仅仅是功能
软件架构让你避免犯重大错误
架构让软件更灵活
开发出色的软件
1、成为软件架构师
以人为本(human)
推迟决策(ambiguity)
善于借鉴(redesign)
化虚为实(tangibility)
四条原则(HART)
理解问题
探索想法
展示想法
评估适用性
运用思维模式
思考(Think)
动手(Do)
检查(Check)
TDC循环
2、设计思维基础
一、软件架构导论
将解决方案看成实验
设法降低风险
努力简化问题
快速迭代学习
同时考虑问题和解决方案
找到够用的设计
软件系统越大,前期做架构设计的获益就越大
软件系统越小,前期做架构设计的获益就越小
前期架构设计做的不够,要对后期返工做好心理准备
前期架构设计投入的越多,后期返工就越少
寻找设计的最佳平衡点
确定条件和后果
降低概率
减少影响
减小风险发生的时间窗口
移除条件
接受现状,什么也不做
如何降低风险
借助风险选择思维模式
风险降低后转为被动设计
用风险做导向
结束设计的条件
必要的设计成果
时间节点
重大风险
概念架构设计
制定设计计划
决定前期做多少架构设计
3、制定设计策略
找合适的人交谈
创建利益相关方关系图
主体
结果
背景
了解业务目标
4、换位思考(同理心)
约束
质量属性
影响较大的功能性需求
其它影响因素
关键架构需求(ASR)
用约束限制设计选择
环境背景
刺激
来源
软件部件
响应
响应度量
用场景描述质量属性
寻找具体可衡量的响应度量
定义质量属性
对功能需求分类
找出其它影响架构的因素
5、挖掘关键架构需求(ASR)
探索元素及其作用,确定架构的结构组成
探索关系及接口,确定元素的交互方式
探索问题领域,理解架构所处的环境
探索技术和框架,提升质量属性
探索构建和部署方法,确保架构可以交付
探索以往的设计,获得启发,指导决策
探索架构关键点
发散探索,聚合决策
接受约束
借助质量属性探索架构模式
运用决策矩阵
提升质量属性
为架构元素分配功能
推迟决策
将设计决策移出架构
设计,应变而生
6、主动选择架构
什么是架构模式
架构失配
分层实现了层间低耦合,层内高内聚,提升了可维护性
分层模式有许多变种,但无论分多少层,它的元素、关系、使用规则是不变的
分层模式
端口适配器模式
管道过滤器模式和批处理模式
面向服务架构模式
发布订阅模式
共享数据模式
多层模式
能力中心模型
开源贡献模式
大泥球模式
以问题为中心
以解决方案为中心
发现新架构模式
外框
7、架构模式
协作和抽象是我们思考、分析、理解、架构的基本方法
构建设计词汇
引导我们关注重要的细节
帮助推演质量属性和其它系统特性
展示架构师的构思
优秀架构模型的优点
推演架构
创建元模型,首先要定义概念,也就是架构中的元素和关系。
定义概念后,再建立这些概念的使用规则
元模型
先提问
然后验证模型
再通过修改或添加规则更新模型
分离新概念
选择架构模式作为基础
向模型添加新概念时务必附上使用规则
保持一致性
空白
凑合
沾边
反应功能
反应角色
反应意图
领域抽象
七个阶段
取好名称
设计元模型
统一使用架构词汇
组织代码,突显架构
模块结构
组件连接器机构
分配结构
贯彻落实元素关系
添加代码注释
用代码生成模型
让模型融入代码
8、建立模型,化繁为简
确定研讨会目标及参会人员
准备阶段
启动研讨会
创建、分享、评判-CSC迭代
迭代
会议总结,确定后续行动
筹划架构设计研讨会
轮转设计
集体海报
白板涂鸦
架构拟人化
挑选设计方法
调整研讨会规模
邀请多样化受众
充分发挥团队的力量
挑选参与者
为研讨会留足时间
设立期望
解说-展示-再解说
分享诀窍
设置截至时间
适时指定参与者
使用“停车场”
会议管理
使用远程协作工作
增加议程时间
备用沟通渠道
准备共享资料
创造面对面的机会
离线运转
与远程团队协作
9、召开架构设计研讨会
元素功能视图
精细视图
质量属性视图
映射视图
粗略视图
自定义视图
用不同的视图展示架构
使用图例
突出模式
简洁与一致
描述性文字
绘制出色的图表
10、展示设计决策(ADR)
组织有序
在开发人员和业务相关方之间建立通用语言
突出质量属性
理清思路
创建可评估的媒介
展示架构
架构描述的重要性
讲述完整的故事
部落描述:口述历史
社区描述:传播的更远
正式描述:必要时才使用
徒劳描述
views and beyond
ISO/IEC/IEEE 42010标准模版
两个模版
引言和导读信息
文档综述和简介
利益相关方诉求、业务目标和关键架构需求概述
系统情景图
相关视图
风险、未解决问题及后续工作
附录
包含的部分
创建传统的软件架构描述(SAD)
因地制宜,选择描述方法
根据受众的需求定制
用多个视图展示架构
清晰定义元素及其功能
解释设计决策的逻辑依据
出色描述的四个特征
提高可理解性
尊重受众
建立视点
自定义视点
围绕利益相关方关注点组织视图
描述为选择的道路
阐述决策的逻辑依据
11、描述架构
评估得真知
准备评估对象
指标(criteria)
评分(rating)
评估标准包括两部分
举足轻重、不可或缺
互不重叠
易观察、可衡量
准确不模糊
根据关键架构需求选择指标
选择评分标准
定义评估准则
形成判断
检验设计
定义评估目标
制定评估准则
准备工作
项目背景
关键架构需求
待评估的架构设计
帮助评估者做好准备
场景排查
问题-评论-关注事项
风险风暴
绘制草图做比较
代码评审
回顾架构决策记录
方法
评估
结论应该清晰表达架构满足指标的程度
提出架构改进建议
分析与结论
后续行动
举办评估研讨会
用评估金字塔平衡成本与价值
风险
信息空白
麻烦
认知偏差
架构变异
情境偏移
发现各种类型的问题
从仪式感弱的评估方法开始
尽早评估、反复评估、持续评估
12、架构评估
提倡架构思维
传授技能,辅助决策
结对设计
搭建支架
引入架构导轨
举办交流会
何时保留设计权限
何时下放设计权限
设计下放
为团队创造实践机会
分配系统,分配职责
关注大局,保证全局设计的一致性
管理技术债务
共同设计架构
13、鼓励团队参与架构设计
二、架构设计原理
二选一
移情图
GQM研讨会
利益相关方访谈
假设清单
质量属性网络
微型质量属性研讨会
观点填空
响应度量稻草人
利益相关方关系图
14、理解问题的常用方法
架构演变记录
组件-功能-协作者卡片
概念图
分而治之
事件风暴
团队海报
循环设计
15、探索解决方案的常用方法
架构决策记录
架构主旨
背景图
精选阅读列表
启动计划书
模块化分解
未采纳的决策
制作模型,用于学习或决策
时序图
系统隐喻
16、展示设计的常用方法
架构简报
决策矩阵
观察系统表现
合理性检查
画草图做比较
17、评估设计方案的常用方法
三、架构师的工具箱(TODO)
架构师修炼之道
0 条评论
下一页