网易首页 > 网易号 > 正文 申请入驻

架构图3个月变废纸,这个编译器让CI提前拦错

0
分享至


Neal Ford和Mark Richards的新书还没上市,一个 side project 已经跑在了前面。作者花了很长时间以为这是纪律问题——团队只要更严谨就行。后来发现是工具问题:架构从来都不是机器可读的产物。

你的 Miro 板不会报警,Confluence 不会阻断合并请求。当实现偏离设计时,唯一的反馈机制是「三个月后发现这坨代码看不懂」。

「架构即代码」卡在最后一公里

Ford 和 Richards 在 O'Reilly Radar 的文章里提出了「fitness functions」——针对架构关注点的自动化治理检查,类似单元测试,但测的是架构。他们引用的工具 ArchUnit、NetArchTest、PyTestArch 都是 solid 的实现。

但所有这些工具都作用于「已经存在的代码」。

作者想做的不是事后检查,而是事前拦截。干预点不同,修复成本天差地别。生产代码里改架构,跟设计阶段改架构,代价可能是 100 倍 vs 1 倍的关系。

编译器设计里有个概念叫 IR(intermediate representation,中间表示)——介于源码和目标输出之间的稳定层,机器可读,验证、优化、代码生成都在这层跑。同样的输入,同样的输出,每次如此。

架构为什么不能有这东西?

不是图,不是文档,是一个有结构的图——节点和边——确定性编译器能读取、验证、编译成可运行代码。CI 能在服务仓库存在之前就拦住问题。


一个最小示例:支付 API 直连数据库

作者放了一段 JSON 配置:payment-api 节点直接连到 user-db 节点。运行 `archrad validate` 后,输出很直白:

「⚠️ IR-LINT-DIRECT-DB-ACCESS-002:API 节点直接连接数据存储节点。修复建议:在 HTTP 处理器和持久层之间引入服务或领域层。影响:测试、存储替换、不变量强制都会更难。」

这条规则的名字很技术,但问题很常识。只是常识在没有工具时,要靠 code review 去抓,靠文档去记,靠项目经理去催。

现在变成了一条可自动执行的 lint 规则。

作者的原话是:「The intervention point is different — and so is the cost of fixing what you find.」干预点不同,发现问题的修复成本也不同。这不是换个说法,是两种完全不同的工作流。

从「应该」到「必须」的管道化

现有架构治理的痛点在于,它活在「应该」的维度。应该更新文档,应该遵循设计,应该做架构评审。但「应该」在 deadline 面前弹性很大。

编译器把「应该」变成「必须」。不是通过文化建设,而是通过把架构描述变成 CI 能 gate 的 artifact。


作者没有展开讲实现细节,但给出了关键线索:确定性编译、中间表示、图结构验证。这三个词组合起来,指向的是一个可复现的构建流程——就像你用 Terraform 定义基础设施,现在用类似的思路定义系统架构。

区别是 Terraform 管的是「有什么」,这个工具管的是「怎么连」。

一个有趣的观察:作者提到「A cache layer gets added. A direct DB call sneaks in. The agreed service boundary dissolves over three sprints.」缓存层加了,直连数据库的调用溜进来了,约定的服务边界在三个冲刺里消融。这三句话没有主语,因为主语是「系统」本身——没有约束的系统会自发熵增。

工具的价值在于对抗这种熵增,而不是指望人凭意志力对抗。

side project 的野心与局限

作者强调这是 side project,但思路并不小众。Fitness functions 的概念来自进化式架构(Evolutionary Architecture),Neal Ford 本人就是这本 2017 年著作的作者之一。把架构决策自动化、可测试化,是这个行业一直在试的方向。

之前的尝试卡在表达力上。UML 太沉,C4 模型太手绘,各种架构描述语言(ADL)从来没走出学术界。作者的选择是 JSON/YAML 级别的轻量,牺牲一部分表达能力,换取可执行性。

这是一种务实的 trade-off。就像 Dockerfile 没有试图描述「整个数据中心」,只描述「这个容器里有什么」,archrad 也只描述「这些组件怎么连」。

能描述清楚连接关系,就能跑 lint。能跑 lint,就能在 CI 里 gate。能在 CI 里 gate,架构评审就从「开会」变成「提交 PR」。

作者没有给出路线图,也没有承诺开源。但问题抛得很清楚:如果架构真的是代码,它就应该有编译器。不是生成文档的编译器,是生成可运行系统、同时拒绝坏设计的编译器。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
小某书4.1万赞热帖“穷人软糖”事件,炸出舔高踩低的病态群体

小某书4.1万赞热帖“穷人软糖”事件,炸出舔高踩低的病态群体

小椰子专栏
2026-03-30 13:02:46
只因海报“中国台湾”四字,创票房纪录台片,竟再让绿营心碎一地

只因海报“中国台湾”四字,创票房纪录台片,竟再让绿营心碎一地

瑛派儿老黄
2026-03-29 16:16:33
油价破115美元,美国准备增派万人地面部队!特朗普:夺伊朗石油,像在委内瑞拉那样

油价破115美元,美国准备增派万人地面部队!特朗普:夺伊朗石油,像在委内瑞拉那样

红星新闻
2026-03-30 13:04:50
特朗普:迎来“重大一天”,我们又收到了伊朗的“礼物”;陆军游骑兵和“海豹突击队”都来了,美特种兵可能参与夺岛或涉伊核任务

特朗普:迎来“重大一天”,我们又收到了伊朗的“礼物”;陆军游骑兵和“海豹突击队”都来了,美特种兵可能参与夺岛或涉伊核任务

每日经济新闻
2026-03-30 14:50:07
官宣离婚才几天,姚晨就和曹郁联手,给内娱所有离异夫妻上了一课

官宣离婚才几天,姚晨就和曹郁联手,给内娱所有离异夫妻上了一课

动物奇奇怪怪
2026-03-30 17:20:42
特朗普松口,俄罗斯油轮到了

特朗普松口,俄罗斯油轮到了

观察者网
2026-03-30 17:15:21
爆料广东队内讧,超级前锋和杜锋互喷,疑似要离队,忍受不了被骂

爆料广东队内讧,超级前锋和杜锋互喷,疑似要离队,忍受不了被骂

宗介说体育
2026-03-30 13:30:33
连樱花都不敢看,谈何文化自信?别让“恐日症”锁死中国的春天

连樱花都不敢看,谈何文化自信?别让“恐日症”锁死中国的春天

律法刑道
2026-03-30 08:41:29
国家出手擒下的3名华人首富,看看他们干的事,根本不值得饶恕!

国家出手擒下的3名华人首富,看看他们干的事,根本不值得饶恕!

天马幸福的人生
2026-03-30 05:11:19
当着郑丽文、韩国瑜的面,洪秀柱高喊:一中就是中国,台湾加大陆

当着郑丽文、韩国瑜的面,洪秀柱高喊:一中就是中国,台湾加大陆

哄动一时啊
2026-03-30 14:47:04
曼联夏窗锁定23岁顶级中场!为截胡曼城,红魔愿以他为核心建队

曼联夏窗锁定23岁顶级中场!为截胡曼城,红魔愿以他为核心建队

仰卧撑FTUer
2026-03-30 13:28:08
抓获犯罪嫌疑人18名 查获涉案电动自行车500余辆 上海警方严厉打击破解电动自行车限速违法犯罪

抓获犯罪嫌疑人18名 查获涉案电动自行车500余辆 上海警方严厉打击破解电动自行车限速违法犯罪

上海法治声音
2026-03-30 16:30:06
梅德韦杰夫:美国打击伊朗是“严重战略错误”

梅德韦杰夫:美国打击伊朗是“严重战略错误”

财联社
2026-03-27 22:14:07
欧美股市全线下跌,油价再度飙升7%,纳斯达克指数下跌459点

欧美股市全线下跌,油价再度飙升7%,纳斯达克指数下跌459点

投资观
2026-03-30 07:10:03
最强Mate来了!华为Mate 90全系标配直屏:高配版独占双层OLED

最强Mate来了!华为Mate 90全系标配直屏:高配版独占双层OLED

快科技
2026-03-30 14:38:31
都说没人买油车了!我家电车开了快3年,不吹不黑说句实在话

都说没人买油车了!我家电车开了快3年,不吹不黑说句实在话

娱乐圈的笔娱君
2026-03-29 14:00:12
你们都是什么时候对男女之事开窍的?网友:果然还是拦不住有心人

你们都是什么时候对男女之事开窍的?网友:果然还是拦不住有心人

夜深爱杂谈
2026-02-21 21:37:02
中俄朝韩四国开团秒跟,接二连三向日本发难:高市早苗迎接疾风吧

中俄朝韩四国开团秒跟,接二连三向日本发难:高市早苗迎接疾风吧

忠于法纪
2026-03-30 17:14:30
上高中的8.24万人,内部怎么分?一张图说清楚上海高中层次

上高中的8.24万人,内部怎么分?一张图说清楚上海高中层次

王姐懒人家常菜
2026-03-30 12:04:59
虽败犹荣:武汉会战虽失败,但惨胜的日本有多惨?

虽败犹荣:武汉会战虽失败,但惨胜的日本有多惨?

史韵流转
2026-03-30 09:23:41
2026-03-30 17:55:00
Ping值焦虑
Ping值焦虑
有态度网友ytd
413文章数 4关注度
往期回顾 全部

科技要闻

一句谎言引发的硅谷血案

头条要闻

尹正发文恭喜张雪夺冠 张雪:没钱请您做代言人 送台车

头条要闻

尹正发文恭喜张雪夺冠 张雪:没钱请您做代言人 送台车

体育要闻

想进世界杯,意大利还要过他这一关

娱乐要闻

单依纯凌晨发长文道歉!李荣浩再回应

财经要闻

本轮地缘冲突,A股凭什么走出独立行情

汽车要闻

理想i9要来了!外形似小号MEGA 能冲击高端纯电市场?

态度原创

艺术
健康
亲子
游戏
房产

艺术要闻

600 年前的「产亡孤魂」,藏着中国女性最痛的记忆

干细胞抗衰4大误区,90%的人都中招

亲子要闻

儿科护士精准控场,孩子哭得收放自如

2025年的神作有中文了!M站92分 IGN9分超好评

房产要闻

32亿,三开三罄!谁在硬控海口楼市高端局?

无障碍浏览 进入关怀版