软件架构阅读清单
内容提要
软件架构师Andrew Leigh回顾了他的25年经验,并提供了阅读建议清单。强调工具和意识形态必须适合实践,架构异味是一个问题,所有架构都有优点和缺点,思考团队、利益相关者和持续架构的重要性。
延伸解读
工具选择:实践者应有最大发言权
文章引用UML使用调查,指出70%的受访者不使用UML,而使用者多选择性地用于沟通和协作。作者结合自身经验,强调工具和意识形态必须适合实践才能被广泛采用。这提醒我们,在决定使用什么工具以及如何应用时,开发人员应拥有最大的发言权,而非盲目追随方法论。
架构异味的代价:错误更多,修复更耗时
文章引用2015年研究,将架构异味形式化并在10个Java项目中检测,发现代码异味越多,越容易出错,修复和修改也越费力。2019年研究进一步表明,开发人员近25%的时间被技术债务浪费。因此,识别和管理架构异味对团队效率至关重要。
微服务并非银弹:权衡利弊是常态
文章引用2018年对40家组织的综述,总结出微服务的29个痛点和34个收获,并提及近期有文章讨论从微服务迁移回单体。这提醒我们,无论技术炒作程度如何,所有架构决策都需要权衡利弊,没有一种架构只有优点没有缺点。
架构责任属于整个团队
文章引用《务实的架构师进化》一书,指出架构责任应由整个团队共同承担,软件开发是依赖于人与技术联合优化的社会技术学科。作者引用导师的话“一切都取决于人”,强调团队合作和持续适应的重要性。
Q&A
软件架构师Andrew Leigh的经验对架构决策有什么影响?
Andrew Leigh强调架构决策对软件开发至关重要,影响利益相关者的需求满足。
UML在软件开发中的使用情况如何?
大多数从业者(70%)表示不使用UML,使用者中大多数选择性使用,主要用于利益相关者的沟通和协作。
什么是架构异味,它有什么影响?
架构异味是代码中更深层次问题的指标,可能导致易出错、易更改和技术债务等症状。
微服务架构有哪些优缺点?
微服务架构有29个痛点和34个收获,所有架构决策都需要权衡利弊。
团队在软件架构中的角色是什么?
架构责任应由整个团队共同承担,强调团队合作与技术的联合优化。
如何管理架构异味及其相关的技术债务?
必须管理架构异味,Carola Lilienthal的《可持续软件架构》提供了大量实用建议。