写点什么

ThoughtWorks CTO:2025 年之前,我们会看到架构的演进,但不会看到革命

  • 2023-04-11
    北京
  • 本文字数:1566 字

    阅读完需:约 5 分钟

ThoughtWorks CTO:2025年之前,我们会看到架构的演进,但不会看到革命

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

QCon伦敦会议的第二天,ThoughtWorks 的 CTORebecca Parsons重新审视了演进式架构(evolutionary architecture)的理念并设想了在2025年前它将会出现的变化。她从演进式架构的定义开始,回顾了每项“能力”和属性,预测了在下一个阶段将会发生的变化。她的结论是,我们会看到演进,但不会看到革命。


演进式架构支持在多个维度上有指导性的、渐进式的变化。


Parsons 解释了为何采用演进这个词而不是敏捷或涌现。在与“演进式架构”一书的合著者 Neil Ford 进行了一次建设性、强有力的对话后,这个名字被确定了下来。最初,Ford 将这种做法称为“涌现式(emergent)”架构。虽然在代码方面,“好”与“坏”相对比较容易达成一致,但在架构方面就并非如此了。定义的指南部分指出了好的架构要有哪些部分组成。


这就是我们引入适应度函数(fitness function)的原因。适应度函数是一个特定的系统在多大程度上反映所需的行为特征的客观描述。


随后,Parsons 着重强调了可执行的重要性:在通往生产化的道路上,如何渐进式地增加新的特性并提供可行的机制?


演进式架构的重要实践和推动力之一就是与持续交付和最终的持续部署一同实现严谨性和自动化。


这些适应度函数应该被纳入到部署流水线中。


定义的最后一部分强调的是多维度方面。她使用一张幻灯片展示了几年前维基百科上的“能力(-ilities)”列表。这个列表后来有了一些变化,例如,更加注重可观测性。列表中的一个谬误是,我们无法最大化所有的能力,因为其中有些能力是互斥的:“有些系统是一次性的,不关心可演进性”。



接下来,Parsons 谈到了如今演进式架构的原则,并预测了它们在未来两年的发展。


个人认为,我们第一次尝试 SOA 的失败原因之一就是我们在系统周围画了边界。比我们围绕概念画出的边界更多。


最后的责任时刻:为了尽可能多地掌握系统的信息,我们想把决定推迟到最后的责任时刻(responsible moment)。需要做的权衡转换成了“能力”和适应度函数。


为可演进性而设计和开发:如果可演进性对你的系统很重要,那么它不仅对你如何编写代码很重要,而且对你如何结构化代码也很重要。


可读性是关键,这就是优质软件指标的作用所在。[...]这就是我们谈论边界、耦合和内聚的时候。


Postel 定律:对收到的东西要慷慨,对发送的东西要谨慎。


如果你只需要一个邮政编码,就不要验证收到的地址。这样,如果我决定把它分成两行,你就不需要在意它了


可测试性架构:测试某项功能的能力以及某项功能的可测试性如何,很好地说明了你的边界划分是否合理。如果你专注于测试金字塔的所有层次,你就会有更好的系统架构。


康威定律:可怕的人的问题。任何系统都会反映出所有组织的沟通情况。


如果你想要一个三阶段的流水线,你必定有三个小组。


最后,她谈到了这些原则在未来两年内会受到怎样的影响。根据 Parsons 的说法,“最后的责任时刻”和 Postel 定律都不会受到影响。


即使这些原则保持不变,但会有更多的创新,从而能够建立起更强大、更具“免疫性”的系统。不仅仅物联网、增强或虚拟现实等系统的复杂性中会融入创新,更多的创新将发生在机器学习模型的测试方式上。人工智能辅助开发会促进不同类型的开发技术的发展,如测试优先开发(Test First Development),即开发人员编写测试,人工智能生成代码,或其他方式。


所有这些都将通过增强持续部署流水线、增加对生产中测试的依赖以及扩大适应度函数和方法套件来实现。


她在演讲结束时这样总结说:


这些原则自始至终都是不变的,目前还没有迹象表明我们遗漏了什么原则。实践会不断发展,但不会有根本性的改变[......]即使创新会改变工具,但原则是不变的。演进式架构会继续发展,但不太可能会迎来一场革命。


原文链接:

Rebecca Parsons - ThoughtWorks CTO: By 2025 We'll See Evolution in Architecture, But Not Revolution


相关阅读:

架构师(2023 年 4 月)

浅析三款大规模分布式文件系统架构设计


2023-04-11 08:005529

评论

发布
暂无评论
发现更多内容

华为云 CodeArts Artifact:开启企业管理新模式

YG科技

CloudQuery x 达梦,国产数据库正当时

BinTools图尔兹

数据库 数据库管理 数据库安全 达梦 兼容适配

软件测试/人工智能丨关系运算符

测试人

人工智能 软件测试

文件夹和文件比较工具 VisualDiffer免激活最新版

mac大玩家j

Mac软件 对比软件 文件夹对比工具

Blackmagic Fusion Studio 18 mac v18.6.4正式激活版

影影绰绰一往直前

如何将在线教育小程序一键生成App

Geek_2305a8

零基础也能搞定文案生成应用,半小时包教包会!「大模型摇摇乐」硬核教程来啦!

飞桨PaddlePaddle

人工智能 代码 零基础 开发教程 文案生成

昇腾AI开发者创享日·广州站成功举办 四大仪式激发人工智能产业创新活力

彭飞

K8s容器debug高级技巧

SEAL安全

容器 Kubernetes 集群

每日一题:LeetCode-129. 求根节点到叶节点数字之和

半亩房顶

面试 算法 LeetCode 二叉树 DFS

文件和文件夹比较的专业工具:VisualDiffer简单实用

影影绰绰一往直前

Premiere Pro 2024 mac v24.1中文激活版

影影绰绰一往直前

华为云耀云服务器L实例,数字化竞争的制胜法宝

YG科技

软件测试/人工智能丨逻辑运算符

测试人

人工智能 软件测试

解锁数字化时代的软件包管理利器—华为云CodeArts Artifact.docx

YG科技

华为云助力企业引领数字化时代

YG科技

Fusion Studio 18 v18.6.4完美兼容破解版 附Fusion Studio激活补丁

Rose

mac视频后期特效处理 Fusion Studio 18下载 Fusion Studio激活秘钥 Blackmagic Fusion Studio

Q-learning 入门:以 Frozen Lake 游戏环境为例

Baihai IDP

人工智能 程序员 AI 强化学习 白海科技

Sermant:无代理服务网格架构解析及无门槛玩转插件开发

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 DTSE Tech Talk

Wireshark中的http协议包分析

小齐写代码

oracle dblink mysql查询text无法显示问题

百度搜索:蓝易云

MySQL oracle Linux text DBLINK

安卓设备解锁工具 FonesGo Android Unlocker激活中文版

胖墩儿不胖y

Mac软件 安卓设备解锁工具

浅谈SQL优化小技巧 | 京东云技术团队

京东科技开发者

MySQL 数据库 sql 性能优化

大数据离在线混部资源调度的演进和选型

丁点大数据

大数据 云原生 云原生大数据

Nacos 配置中心源码 | 京东物流技术团队

京东科技开发者

源码 nacos 源码剖析 配置中心

轻松建网站,一键部署,华为云不止省时还省心

YG科技

docker通过dockerfile安装sftp教程。

百度搜索:蓝易云

Linux 运维 Dockerfile 云服务器 sftp

Redis 也支持全文搜索 了?这也太强了

越长大越悲伤

redis Jedis redisearch

使用Flink完成流数据统计 | 京东云技术团队

京东科技开发者

大数据 flink stream 数据统计

华为云CodeArts Artifact:数字化时代软件包管理的领航者

YG科技

拓扑排序实现循环依赖判断 | 京东云技术团队

京东科技开发者

后端 排序算法 循环依赖 拓扑排序

ThoughtWorks CTO:2025年之前,我们会看到架构的演进,但不会看到革命_架构_Olimpiu Pop_InfoQ精选文章