软件架构
by Bin Chen
1. 架构实现
2. 架构维护
3. 架构决策
3.1. 关键需求决定架构
3.1.1. 需求明确、可量化
3.1.2. 关注需求背后的本质
3.1.3. 关键需求不一定是业务需求
3.2. 架构决策是沟通、谈判
3.2.1. 沟通技巧
3.2.2. 谈判技巧
3.2.3. 架构不只是技术问题
3.3. 根本复杂性、偶发复杂性
3.3.1. 简化但不避免根本复杂性
3.3.2. 尽量消除偶发复杂性
3.4. 架构应匹配需求上下文
3.4.1. 没有银弹
3.4.2. 随需应变
3.4.3. 架构和需求的时效性
3.5. 架构不能解决所有问题
3.5.1. 人工参与简化架构和设计
3.5.2. 权衡自动化的成本和收益
3.6. 架构路线图
3.6.1. 技术决策不一蹴而就
3.6.2. 分阶段决策、逐步调整(敏捷)
3.7. 非功能需求对架构的挑战
3.7.1. 架构决定性能
3.7.2. 分布式、伸缩性的挑战
3.8. 需求的二八原则对架构的影响
3.8.1. 架构是否要向20%常用需求倾斜