QCon London会议第二天内容总结
在QCon London会议第二天,Thoughtworks的首席技术官Rebecca Parsons重新探讨了进化架构的概念,并展望了其在2025年的发展前景。她首先从进化架构的定义入手,详细分析了各个“-ilities”(即架构属性),并预测了它们在未来几年的演变趋势。她最终得出结论:未来将看到的是进化而非革命。
进化架构的定义
进化架构支持在多个维度上进行有指导的、渐进式的变革。Parsons解释了为何使用“进化”一词而非“敏捷”或“涌现”。在与《进化架构》合著者Neil Ford的讨论后,最终确定了这一名称。Ford最初称之为“涌现”架构,但Parsons指出,虽然代码的“好”与“坏”容易达成共识,但在架构层面则不然。进化架构的“有指导”部分指的是如何定义好架构。
适应度函数
为了衡量系统是否反映了期望的行为特征,Parsons引入了适应度函数的概念。适应度函数是系统行为的客观表征,应嵌入到部署管道中。
持续交付与部署
进化架构的重要实践和推动力之一是与持续交付和持续部署相关的严格性和自动化水平。这些技术使得新功能能够逐步添加,并确保其顺利进入生产环境。
多维度架构
进化架构强调多维度特性。Parsons展示了一张包含“-ilities”的幻灯片,指出这些属性是相互排斥的,无法同时最大化。例如,某些系统是一次性的,因此无需关注可进化性。
当前的进化架构原则
Parsons分析了当前进化架构的几大原则,并预测了它们在未来两年的演变:
- 最后责任时刻:为了尽可能多地掌握系统信息,决策应推迟到最后责任时刻。这种权衡将影响“-ilities”和适应度函数。
- 为可进化性设计和开发:如果可进化性对系统至关重要,不仅代码的编写方式重要,代码的结构也至关重要。可读性是关键,软件质量指标在此发挥作用。
- Postel法则:对接收的内容要宽容,对发送的内容要谨慎。例如,如果只需要邮编,不要验证整个地址。
- 为可测试性设计:系统的可测试性反映了边界划分的合理性。关注测试金字塔的各个层级将有助于构建更好的架构。
- 康威定律:任何系统都会反映组织的沟通(不)良。例如,如果需要三阶段管道,就必须有三个团队。
未来两年的影响
Parsons认为,“最后责任时刻”和Postel法则在未来两年不会受到太大影响。尽管原则保持不变,但创新将推动构建更健壮、更具“免疫力”的系统。特别是在物联网、增强现实和虚拟现实等复杂系统中,机器学习模型的测试方式将迎来更多创新。AI辅助开发将促进不同类型的开发技术,如测试优先开发(Test First Development),开发者可以编写测试,AI生成代码,反之亦然。
总结
Parsons总结道,这些原则在时间的长河中保持不变,目前没有迹象表明我们遗漏了任何原则。实践将进化,但不会根本改变,尽管创新会改变工具,但原则将保持不变。进化架构将继续进化,但不太可能发生革命。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。