现在的位置: 首页 > 架构设计 > 正文

什么是架构师的进化论

2020年01月01日 架构设计 ⁄ 共 1143字 ⁄ 字号 评论关闭

  在构建软件时,架构师必须明确哪些特征最重要。然而,许多因素是互相矛盾的。比如,让软件具备高性能的同时还要实现极大的伸缩性就很困难,因为实现这两者需要谨慎地平衡架构、运维及其他诸多因素。因此,在为架构设计做必要分析的同时,又要处理好各个因素之间不可避免的冲突,架构师在权衡每个架构设计方案的利弊时,常常需要做出非常艰难的折中。

  近年来,软件开发核心工程实践的持续发展给我们提供了条件,使我们得以重新思考架构随时间的推移要如何变化,以及当这样的演进发生时,如何保护重要的架构特征。我们想为软件架构添加一个新的标准“特征”——演进能力,以一种新的方式思考架构和时间。

演进式架构

  无论我们怎么努力,软件依然变得越来越难以改变。由于各种原因,软件的组成部分不容易变更,而且随着时间推移变得愈发脆弱和难以操作。软件项目的变更通常是由于对功能或范围做了重新评估而导致的,但是还有一些变化是架构师和长期规划者无法控制的。尽管架构师喜欢为未来做战略性规划,但不断变化的软件开发环境使这一切变得困难重重。既然变化是必然的,那么我们就只能因势利导地来利用它。

一切都在变化,如何才能长期规划

  软件开发体系由所有的工具、框架、库以及最佳实践(软件开发领域的技术积累)构成。和生态系统一样,软件开发体系实现了平衡,开发人员能够理解这个体系并为其添砖加瓦。然而,这种平衡是动态的,随着新事物不断出现,平衡不断被打破和重建。想象一个脚踏独轮车,手里还拿着盒子的人。他是动态的,因为他需要不断调整来保持挺立;他又是平衡的,因为他保持着身体平衡。在软件开发体系中,每一项创新或新实践都可能打破现状,迫使系统重新建立平衡。就好比我们不断地将更多的盒子抛向骑独轮车的人,迫使他不断寻求新的平衡。

  我们所使用的编程平台也在持续演进。新的编程语言提供了更好的应用编程接口(API),提高了对新问题的灵活性和适用性。新的编程语言还提供了不同的范式和概念。

  即使环境不改变,架构特征出现磨损该怎么办?架构师设计出架构,将其置于纷乱的现实世界,基于架构执行各项事务。架构师要如何保护他们定义的重要部分呢?

完成架构构建后,如何防止它逐渐退化

  有一种不幸的退化叫作架构比特衰减,它在很多组织中均有发生。架构师选择特定的架构模式来满足业务需求及让系统具备某些能力,但这些特征常常意外地随着时间推移而退化。例如,架构师构建了一个包含顶部展现层、底部持久层和一些中间层的分层架构。负责报表功能的开发人员出于性能上的考虑经常会要求绕过中间层,直接从展现层访问持久层。架构师通过分层来隔离变化。而后开发人员绕过这些层,不仅增加了耦合,还使得分层变得毫无价值。

  结束语:以上就是关于什么是架构师的进化论全部内容,更多内容请关注学步园。

抱歉!评论已关闭.