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

架构师把接口层藏了20年,Clean Architecture一出全暴露了

0
分享至

2008年,Bob大叔提出Clean Architecture时,一个核心假设被多数人忽略:基础设施层(Infrastructure Layer)不是"放数据库和消息队列的地方",而是整个架构的"外环垃圾场"——所有不稳定、易变、肮脏的细节都被驱逐至此。

但过去15年,我见过最多的错误恰恰是反过来的:团队把业务规则塞进ORM配置,让领域模型去适配Redis的序列化格式,用框架生成的DTO直接穿透六边形。

今天这篇文章,我想用三个具体的时间节点,还原基础设施层是如何从"被忽视的技术细节"变成"架构决策的核心战场"。

1996-2005:N层架构的"大泥球"时代

早期企业应用的典型结构是Presentation → Business → Data Access三层。表面清晰,实则灾难——基础设施代码像霉菌一样渗透到每一层。

你能在Business Layer里发现`SqlConnection`的引用,在单元测试里被迫启动真实的数据库。Eric Evans在2003年的《领域驱动设计》中痛批这种现象:"技术实现污染了领域概念。"

当时的"基础设施"甚至不是一个独立概念。数据库访问、日志、缓存、外部API调用,全部以静态工具类或单例模式散落在各处。一个需求变更——比如从SQL Server迁移到Oracle——往往意味着80%的代码需要重写。

这个阶段的核心矛盾:基础设施与业务逻辑的深度耦合,让"可替换性"成为笑话。

2005-2012:六边形架构的"端口与适配器"革命

Alistair Cockburn的六边形架构(Hexagonal Architecture)彻底改变了游戏规则。他引入了两个关键概念:

端口(Ports): 应用程序定义"我需要什么"——比如`IOrderRepository`,一个纯粹的接口,位于领域层内部。

适配器(Adapters): 基础设施实现"我如何提供"——比如`SqlOrderRepository`或`MongoOrderRepository`,位于领域层外部。

这个设计的精妙之处在于依赖方向的反转。领域层不再知道数据库的存在,它只知道"保存订单"这个抽象契约。基础设施层成为纯粹的"插件",可以被替换、被Mock、被延迟到最后一刻实现。

但实践中出现了第一批陷阱。我见过太多团队把"适配器"误解为"简单的翻译层",结果写出了"智能仓库"(Smart Repository)——在数据访问层里塞入业务规则,比如"如果订单金额超过1万,自动触发风控检查"。

Cockburn的原话被选择性遗忘:「适配器应该薄得像一张纸,只负责技术转换,不做任何业务决策。」

2012-2024:Clean Architecture的"同心圆"与边界战争

Bob大叔在《Clean Architecture》中把六边形的思想推向了极致。他用同心圆模型定义了四条边界规则:

1. 依赖规则:内层不依赖外层

2. 抽象规则:外层通过接口与内层对话

3. 稳定规则:越向内,抽象程度越高、变更频率越低

4. 细节规则:数据库、框架、UI,全部属于最外层

这个模型澄清了一个长期混淆的问题:接口到底属于哪一层?

答案是——接口的定义属于内层(领域层),接口的实现属于外层(基础设施层)。`IOrderRepository.cs`放在Domain项目,`OrderRepository.cs`放在Infrastructure项目。听起来简单,但GitHub上超过60%的所谓"Clean Architecture"模板都把这个搞反了。

另一个常见陷阱是"领域泄漏的工具类"。团队为了DRY(Don't Repeat Yourself),把字符串处理、日期计算、货币格式化等"通用功能"提取到Infrastructure层的Utils命名空间。三个月后,领域层的`Order`实体开始调用`StringUtils.Slugify()`,Clean Architecture的边界形同虚设。

正确的做法?这些工具如果是纯函数、无外部依赖,应该放在领域层作为值对象或领域服务;如果涉及框架或I/O,才允许留在基础设施层,且必须通过接口被领域层调用。

2024年的新战场:框架驱动设计的反噬

最近五年,一个更隐蔽的问题浮现:框架驱动设计(Framework-Driven Design)。Spring Boot、.NET Core、NestJS的"约定优于配置"哲学,让基础设施层的决策被框架默认值绑架。

团队不再问"我们的领域需要什么端口",而是问"Spring Data JPA怎么实现这个查询"。领域模型被注解淹没,`@Entity`、`@Table`、`@Column`这些基础设施细节直接烙印在领域类上。

这不是技术问题,是认知问题。当你说"先用JPA快速实现,以后有需要再抽象",你已经放弃了架构的进化能力。那个"以后"永远不会来,因为技术债务的利息每天都在复利增长。

我见过一个支付系统的核心代码:领域层的`Payment`类引用了`javax.persistence.*`,单元测试必须启动Spring上下文,一次简单的金额计算需要200毫秒。他们的"基础设施层"不存在——整个应用就是一个巨大的基础设施。

打破这个困局的具体做法:在项目中强制规定,领域层的`.cs`或`.java`文件如果出现了任何第三方`import`或`using`,CI直接拒绝合并。这个看似极端的规则,反而倒逼团队认真思考边界的位置。

基础设施层的终极价值,不在于它"有什么",而在于它"没有什么"。没有业务规则,没有领域概念,没有框架假设——只有对端口的忠实实现,和对技术细节的彻底封装。

当你的团队争论"这个该放Domain还是Infrastructure"时,最好的检验标准是什么?

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

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.

相关推荐
热点推荐
张雪机车,全球订单狂飙

张雪机车,全球订单狂飙

第一财经资讯
2026-04-18 18:42:46
李修贤谈万梓良现状:酒吧驻场不丢人,为人仗义,事业婚姻都不顺

李修贤谈万梓良现状:酒吧驻场不丢人,为人仗义,事业婚姻都不顺

以茶带书
2026-04-14 16:39:49
严防以色列偷袭!歼10在德黑兰建立禁飞区,伊朗错失逆天改命机会

严防以色列偷袭!歼10在德黑兰建立禁飞区,伊朗错失逆天改命机会

史行途
2026-04-20 20:12:18
正式退出,伊藤美诚退出日乒?落选日本女队,谁注意世乒赛名单

正式退出,伊藤美诚退出日乒?落选日本女队,谁注意世乒赛名单

懂球社
2026-04-19 19:23:27
巴黎FC主帅:我们队里的意大利人都比尤文和米兰的意大利人多

巴黎FC主帅:我们队里的意大利人都比尤文和米兰的意大利人多

懂球帝
2026-04-20 09:47:26
运-20B首次接迎志愿军英烈 它和运-20有什么不同?

运-20B首次接迎志愿军英烈 它和运-20有什么不同?

新京报
2026-04-20 18:47:10
美伊谈判破裂,加拿大总理表态拒付资金,欧洲多国跟进取消订单

美伊谈判破裂,加拿大总理表态拒付资金,欧洲多国跟进取消订单

一盅情怀
2026-04-19 19:34:55
明晚,国内油价或将下调!

明晚,国内油价或将下调!

仙源南溪
2026-04-20 18:57:20
医生调查发现:糖尿病人过了68岁,基本都有这4现状,要坦然接受

医生调查发现:糖尿病人过了68岁,基本都有这4现状,要坦然接受

周哥一影视
2026-04-20 18:17:31
陈乔恩变得越来越成熟了,灰色长裙搭配修身西服尽显辣妈风韵!

陈乔恩变得越来越成熟了,灰色长裙搭配修身西服尽显辣妈风韵!

说不尽的人心
2026-04-20 19:45:09
新加坡急了,外长几乎是拍着桌子,让中国“尊重”马六甲的地位。

新加坡急了,外长几乎是拍着桌子,让中国“尊重”马六甲的地位。

南权先生
2026-01-26 15:41:26
2.25TB内存被当垃圾扔掉:企业IT资产管理盲区

2.25TB内存被当垃圾扔掉:企业IT资产管理盲区

报错免疫体
2026-04-19 20:20:12
“毒包子”养废了多少孩子,很多家长还在喂,看完文章停下来吧

“毒包子”养废了多少孩子,很多家长还在喂,看完文章停下来吧

枕边聊育儿
2026-04-20 08:46:22
千万网红回应家中300万元黄金和名包被盗,“入职不到四个月司机干的,先承诺退回又失联,已报警”

千万网红回应家中300万元黄金和名包被盗,“入职不到四个月司机干的,先承诺退回又失联,已报警”

大风新闻
2026-04-20 19:55:07
14年前,为救学生失去双腿,获捐1572万的教师张丽莉,后来怎样了

14年前,为救学生失去双腿,获捐1572万的教师张丽莉,后来怎样了

就一点
2026-04-20 11:46:24
于海青:为何说广东黄坤明书记不断下基层让企业信心满满?

于海青:为何说广东黄坤明书记不断下基层让企业信心满满?

于海青
2026-04-19 19:54:18
中国“捡钱”时代可能要来了:若手中只有10万,试试死啃这两条线

中国“捡钱”时代可能要来了:若手中只有10万,试试死啃这两条线

世界圈
2026-04-20 13:02:44
大专、野模、知三当三,孙怡浪姐"骚操作"不断难怪王京花看不上她

大专、野模、知三当三,孙怡浪姐"骚操作"不断难怪王京花看不上她

橙星文娱
2026-04-18 16:01:07
体检报告中,若3个指标都正常,基本可排除很多疾病

体检报告中,若3个指标都正常,基本可排除很多疾病

白话电影院
2026-04-09 16:11:20
保加利亚变天!亲俄前总统碾压胜选,44%得票率震撼欧洲

保加利亚变天!亲俄前总统碾压胜选,44%得票率震撼欧洲

吴霶爱体育
2026-04-20 10:57:46
2026-04-20 21:00:49
算力游侠
算力游侠
游走在API与报错之间,用魔法(AI)打败魔法的非硬核玩家。
1601文章数 18关注度
往期回顾 全部

科技要闻

华为Pura90逆周期定价,4699元起,未涨价

头条要闻

19岁女孩挪用自家1700万当"榜一大姐" 亲爹带女儿自首

头条要闻

19岁女孩挪用自家1700万当"榜一大姐" 亲爹带女儿自首

体育要闻

阿森纳已拼尽全力,但你早干嘛去了...

娱乐要闻

鹿晗生日上热搜,被关晓彤撕下体面

财经要闻

利润暴跌7成,字节到底在做什么

汽车要闻

把天门山搬进厂?开仰望U8冲上45度坡的那刻 我腿软了

态度原创

健康
本地
房产
艺术
公开课

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

本地新闻

12吨巧克力有难,全网化身超级侦探添乱

房产要闻

大规模商改住!海口西海岸,这波项目要赢麻了!

艺术要闻

王羲之《换鹅帖》尚在人间,惊艳无比!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版