元素化模式
“软件架构是系统设计过程中的重要决定的集合,可以通过变更成本来衡量每个设计决定的重要维度。” —— Grady Booch
建模
建模是使用模型在业务和 IT 开发中概念化和构建系统的跨学科研究。
- 概念化
- 价值建模
- 业务建模
- 技术建模
分解?概念范畴化
- LVT
- 分层架构?
- 复杂度拆解?
同构
在抽象代数中,同构指的是一个保持结构的双射。 在更一般的范畴论语言中,同构指的是一个态射,且存在另一个态射,使得两者的复合是一个恒等态射。
- 利益相关者映射
- 能力对齐
- 团队拓扑
Mapping:战略 => 架构 => 实践
示例:
战略目标 | 架构原则 | 设计和交付实践 | |
---|---|---|---|
赋能业务扩展 | 减少惯性 | REST 标准化 | |
支持进入新市场 | 消除偶然的复杂性 | 封装遗留系统 | |
支持已有业务创新 | 一致的接口和数据流 | 最小化依赖 | |
没有银弹 | .... |
显性
意图揭示、显性化知识、可视化
- 城市隐喻(Code City(软件城市))
- Path to Production
Outcome
资产?
架构师的主要任务是定义全面的上下文(一组评估标准),以便做出平衡的架构决策。
决策(英语:Decision-making)是一种认知过程,经过这个过程之后,个人可以在各种选择方案中,根据个人信念或是综合各项因素的推理,决定出行动, 或是决定出个人要向外表达的意见。每个决策过程都会以产生最终决定、选取最终选择为目标。而这些选择的形式可以是一种行动或选取的意见。
- 架构决策框架
- 架构决策记录