阅读笔记7
客观选择是架构师(团队)根据对现有技术的把控和理解,选择一系列技术栈来实现主观判断产生出来的软件要素,诸如采用Spring Cloud来构建应用,选择MySQL作为数据库平台,选择AWS抑或阿里云作为部署平台等等,也就是通常所说的技术架构。这一部分还包括一些特殊的看似主观的判断,主要指一系列设计模式的应用,如采用Circuit Breaker来做服务的容错设计等等;因为模式本身是固定存在的,一旦使用,就遵循固定的范式。所以也是技术架构。对性能优化、部署、运维效率提升而采用的一些技术措施也属于技术架构的范畴。架构设计客观选择部分的特点是,利用已有技术能力来确定软件的实现路径,包括软件功能性和非功能性能力(性能、体验、运维效率等)的实现。这部分对软件质量的好坏、研发团队的工具链&效率、产品构建周期长短、软件维护的代价、软件的开发&使用成本等有直接的影响。客观选择的关注点是实现,核心任务是根据设计选择恰当的技术来实际开发、部署软件,使软件能够真正运行、被使用。特征是完成设计到实现的具体映射;从设计到实现的约束来自于需求和技术两个方面,表现为取得技术和需求共同约束的平衡,比较具体,弹性相对小,可把握的难易程度较小。这一部分把软件视作待加工的产品构件,考验的从架构设计到工程的实践能力。