在QCon 伦敦会议 的第二天, ThoughtWorks 的首席技术官丽贝卡·帕森斯 (Rebecca Parsons)重新审视了进化架构的想法,想象它在 2025 年之前可能会如何演变。从定义开始,她访问了每个定义属性,预测它们在下一个时期将如何演变。结论是我们会看到进化,但不会看到革命。
最初,她提供了更多关于为什么使用进化而不是敏捷或紧急的见解。在与该书的合著者尼尔·福特进行了一次建设性但有力的对话后,这个名字仍然确定下来,该书最初称其为紧急架构。根据演讲者的说法,即使就什么是好代码或坏代码达成一致相当容易,但在架构方面却不一样。定义的指导部分指的是什么构成了好的架构。
她放大的定义的最后一部分是多维方面。几年前,她从维基百科的 -ilities 列表开始。与此同时,列表也在不断发展——例如,也添加了可观察性。该列表的谬误之一是您无法最大化所有这些,因为其中一些是相互排斥的:“有些系统是一次性的;您不关心可进化性”
接下来,她查看了当今进化架构的原则,然后推测它们在未来两年内将如何演变。
就我个人而言,我认为我们第一次尝试实现 SOA 失败的原因之一是我们在系统周围划定了界限。比我们围绕概念吸引他们更重要
Last responsible moment:为了获得尽可能多的关于系统的信息,可以将决定延迟到最后的责任时刻。需要做出的权衡是它将转化为“-ilities”和适应度函数的方式。
为可演化性设计和开发:如果可演化性对你的系统很重要,那么它不仅对你如何编写代码很重要,而且对你如何构建代码也很重要。
可读性是关键,这就是质量软件指标的用武之地。[...] 这是我们谈论边界、耦合和内聚的时候,
Postel 法则:对收到的东西要慷慨,对发送的东西要谨慎。
如果您只需要邮政编码,请不要验证您的地址。这样,如果我决定将其分成两行,您就无需关注它。
可测试性架构师:测试某物的能力以及某物的可测试性如何,很好地表明了您划定界限的程度。如果您专注于测试金字塔的所有级别,您将拥有更好的系统架构。
康威定律:可怕的人的问题。任何系统都将反映任何组织的沟通(失)功能。
如果你想要一个三级管道,你必须有三个组。
最后,她研究了这些原则在未来两年内将受到怎样的影响。根据她的说法,无论是最后责任时刻还是波斯特尔定律都不会受到影响。
尽管原则将保持不变,但随着构建更强大、更强免疫系统的结果,将会有更多的创新。不仅仅是将创新融入物联网、增强现实或虚拟现实等系统的复杂性中,更多的创新将发生在机器学习模型的测试方式上。AI 辅助开发将促进不同类型的开发技术的开发,例如测试先行开发——开发人员可以编写测试,AI 生成代码,反之亦然。
所有这些都将通过增强的持续部署管道、增加对生产测试的依赖以及扩大适用性功能和方法套件而成为可能。
她总结说:
这些原则一直保持不变,没有迹象表明我们缺少一个原则。 实践会发展,但不会从根本上改变[...],即使创新会改变工具,原则也会保持不变。进化架构会进化,但不太可能成为一场革命。