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

七层抽象发一封邮件:"整洁代码"成了新教条

0
分享至

有个代码库里的"发送邮件"功能,套了七层抽象壳子。邮件服务调用邮件供应商,供应商包装邮件客户端,客户端呼叫邮件适配器,适配器使用消息发送器,发送器触发传输层——层层剥完,才真正碰到邮件API。

每层都有正当理由:这里记日志,那里做容错,中间塞重试逻辑。按行业共识的标准,这几乎就是"整洁代码"的范本。问题是,团队里已经没人能完整搞懂这套东西了。


这就是没人敢说的真相——当有人在代码评审里跟你引用Bob大叔时。

Robert Martin的书出版于2008年,给了开发者一套词汇和规则:函数要短、命名要有意义、单一职责、不写注释因为代码应该自解释。好想法,确实是。但接下来发生的事才是问题。

开发者把一套特定场景下的实用建议,变成了放之四海皆准的通用标准。整洁代码从工具变成了身份标签。写整洁代码说明你是正经开发者,写别的就是偷懒、走捷径、不敬业。一旦某件事变成身份认同,它就不再被质疑。

于是开发者开始给不需要抽象的东西加抽象。给永远不会有第二个实现的类创建接口。把函数拆成子函数再拆成子子函数,直到原始逻辑分散在十二个文件里,想搞清楚代码到底在干什么得花四十分钟考古。

全都是为了"整洁"。没一件是为了真正解决问题。

2023年,程序员Casey Muratori发了条视频叫《整洁代码,糟糕性能》。他把Bob大叔的整洁代码示例拿出来,跟直来直去的实现做基准测试。整洁版本慢了最多23倍。

整洁代码社区的反应可想而知:性能对大多数应用不重要,瓶颈通常在数据库,你这是过早优化。有些话确实在理——现代软件大部分时间都在等用户输入,不是在执行业务逻辑。对很多应用来说,性能差距确实无关痛痒。

但这不是Muratori的核心论点。他的重点是:整洁代码规则被包装成放之四海皆准、脱离上下文的定律,但它们不是。它们是权衡。每加一层抽象,就多一层要理解的东西。每个小函数都是读者大脑里的上下文切换。每个接口都是一层掩盖实际发生什么的间接层。

整洁代码只是把复杂度挪了地方,并没有消除它。

诚实代码不是乱写代码,不是想怎么写就怎么写还美其名曰风格选择。诚实代码是承认代码首先是给人读的,而读代码的人通常时间紧迫、压力山大、更想搞懂业务逻辑而不是你的架构巧思。诚实代码问的是:下一个人打开这个文件时,能不能在五分钟内明白这里在发生什么?

有时候答案需要一层抽象。有时候答案就是直接调用邮件API,在旁边写行注释说明重试逻辑在哪处理。

2008年的那本书不是圣经,是特定时间特定背景下的建议。软件变了,硬件变了,团队结构变了,我们构建的东西也变了。规则本该跟着变。

整洁代码运动最大的讽刺在于:它本意是降低复杂度,却催生了一种文化——复杂度被重新包装成美德,而质疑它的人被当成不懂行。

七层抽象发一封邮件。没人能完全理解。但代码很"整洁"。

这真的值得吗?

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

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.

相关推荐
热点推荐
G2上海96-68淘汰山东 球员评价:8人优秀,李弘权及格,3人无贡献

G2上海96-68淘汰山东 球员评价:8人优秀,李弘权及格,3人无贡献

篮球资讯达人
2026-05-10 03:50:35
特朗普摊牌:切断石油供应就滚出美元体系!多国连夜倒向伊朗

特朗普摊牌:切断石油供应就滚出美元体系!多国连夜倒向伊朗

江湖百晓生MJ
2026-05-09 21:00:09
重磅:乌克兰在俄罗斯领土库尔斯克构建90平方公里缓冲区!

重磅:乌克兰在俄罗斯领土库尔斯克构建90平方公里缓冲区!

项鹏飞
2026-05-09 20:32:37
韩旭挤掉7人转正成功!年薪188.3万翻4.45倍 首秀替补8+2真不差

韩旭挤掉7人转正成功!年薪188.3万翻4.45倍 首秀替补8+2真不差

颜小白的篮球梦
2026-05-09 10:16:10
3纳米封锁?英伟达防线已崩,华为强势突围,国产生态发起总攻!

3纳米封锁?英伟达防线已崩,华为强势突围,国产生态发起总攻!

正经的烧杯1
2026-05-08 17:58:59
“你要收费我就卸载”,全网最离不开的AI不装了,口碑大反转

“你要收费我就卸载”,全网最离不开的AI不装了,口碑大反转

果壳
2026-05-09 12:33:57
俄加强对普京的保护措施,欧洲情报机构猜测,可能与绍伊古有关

俄加强对普京的保护措施,欧洲情报机构猜测,可能与绍伊古有关

娱乐小可爱蛙
2026-05-09 17:54:03
比穆里尼奥还意外!皇马换帅突发反转,球迷看完集体炸锅

比穆里尼奥还意外!皇马换帅突发反转,球迷看完集体炸锅

澜归序
2026-05-10 03:03:26
世乒赛男团:随着巴西0-3完败,中国队半决赛对手随之浮出水面

世乒赛男团:随着巴西0-3完败,中国队半决赛对手随之浮出水面

侧身凌空斩
2026-05-09 05:05:31
是离谱还是荒诞,国家反诈APP里的个人信息也能被贩卖

是离谱还是荒诞,国家反诈APP里的个人信息也能被贩卖

林中木白
2026-05-09 20:30:32
男人搞定50岁女人最好方法,喂饱了她两个需求,她就会主动依你

男人搞定50岁女人最好方法,喂饱了她两个需求,她就会主动依你

心理观察局
2026-05-04 08:20:08
王暖暖惊魂送医后血泪控诉:被 MCN 压榨 3 年,钢钉满身逼仍全年直播

王暖暖惊魂送医后血泪控诉:被 MCN 压榨 3 年,钢钉满身逼仍全年直播

草莓解说体育
2026-05-09 17:18:12
多地号召,公职人员带头缴纳物业费

多地号召,公职人员带头缴纳物业费

中国新闻周刊
2026-05-09 12:51:13
海参崴的街头,谁在出卖我们的历史尊严?

海参崴的街头,谁在出卖我们的历史尊严?

迷世书童H9527
2026-05-07 14:55:09
美国要打大仗了!

美国要打大仗了!

阿振观点
2026-05-08 11:10:20
刘卫,到福建履新

刘卫,到福建履新

金台资讯
2026-05-09 15:18:29
上海主帅:季后赛四强完成集团考核任务 接下来要卸下包袱重新出发

上海主帅:季后赛四强完成集团考核任务 接下来要卸下包袱重新出发

狼叔评论
2026-05-09 23:06:03
除夕夜大嫂不准我女儿动筷,我果断带娃回娘家,初二老公却来急电

除夕夜大嫂不准我女儿动筷,我果断带娃回娘家,初二老公却来急电

白云故事
2026-03-02 17:35:07
段永平最新持仓曝光,市场瞬间沸腾

段永平最新持仓曝光,市场瞬间沸腾

新行情
2026-05-09 14:09:02
我敢说,大部分会跟我一样,选择黑色衣服那个女孩!

我敢说,大部分会跟我一样,选择黑色衣服那个女孩!

草莓解说体育
2026-04-12 17:05:01
2026-05-10 04:48:49
算力游侠
算力游侠
游走在API与报错之间,用魔法(AI)打败魔法的非硬核玩家。
2429文章数 23关注度
往期回顾 全部

科技要闻

美国政府强力下场 苹果英特尔达成代工协议

头条要闻

演员文章面馆大火后又开酒吧 多位明星到场母亲也现身

头条要闻

演员文章面馆大火后又开酒吧 多位明星到场母亲也现身

体育要闻

成立128年后,这支升班马首夺顶级联赛冠军

娱乐要闻

50岁赵薇脸颊凹陷沧桑得认不出!

财经要闻

多地号召,公职人员带头缴纳物业费

汽车要闻

轴距加长/智驾拉满 阿维塔07L定位大五座SUV

态度原创

教育
时尚
游戏
本地
旅游

教育要闻

“我女儿一周不换裤子”,家长吐槽反被骂:同为女人,你清楚为啥

伊姐周六热推:电视剧《喀什恋歌》;电视剧《低智商犯罪》......

Windows 11 PC上的Xbox模式不支持多显示器

本地新闻

用苏绣的方式,打开江西婺源

旅游要闻

不用长途奔波!北京城区随处是治愈人心的初夏花海

无障碍浏览 进入关怀版