别傻了,写出极致整洁的代码,是你升不了职的根本原因

本文永久链接 – https://tonybai.com/2026/03/15/over-engineering-trap-no-promotion-for-simplicity
大家好,我是 Tony Bai。
今天讲点得罪人的大实话。如果你是一个有代码洁癖、崇尚极简主义、总是能用最干净的逻辑解决复杂问题的“老实人”程序员,那么接下来的内容,可能会戳痛你。
因为在我们当下的技术职场里,有一个残酷的潜规则:“几乎没人会因为把代码写得太简单,而获得晋升。”
“简单是一种伟大的美德,但复杂性往往卖得更好。” —— 艾兹格·迪杰斯特拉

为什么“PPT架构师”总能赢你?
想象一个极其真实的职场年度晋升场景。
你是工程师 A。你接到了一个核心需求,经过缜密思考,你砍掉了伪需求,用 50 行极其优雅、无状态、无需外部依赖的代码解决了问题。两天上线,零 Bug,下一个接手的人一眼就能看懂。然后你默默回去修下一个 Bug。
你的同事 B 接到了类似的需求。他敏锐地嗅到了“搞一波大动作”的机会。他引入了最新的消息队列,搞了一套基于 Pub/Sub 的微服务解耦机制,外加一个极度灵活的动态配置中心。他拉着各部门开了 5 次架构对齐会,花了 3 个星期,提交了 50 个 PR。
到了年底晋升答辩,命运的齿轮开始转动。
B 在 PPT 上展示了他那张密密麻麻、满是高大上名词的“企业级事件驱动架构图”,评委频频点头,惊呼“具备极强的技术深度和前瞻性布局”,B 顺利拿到了高层级的晋升(Staff/Principal)。
而你呢?你不仅什么都没拿到,甚至连材料都写不出几行字。因为你把问题解决得太简单了,导致你的贡献变成了“隐形的”。
这当然不是老板故意使坏,而是我们的评价体系出现了极其严重的“逆向淘汰”Bug。
你很难为你“没有构建的灾难”去编织一个宏大的叙事。这套错位的激励机制,甚至从你面试的那一天就开始了。回想一下系统设计面试,如果你给出一个单体数据库+直白API的务实方案,面试官会皱眉;但如果你在白板上疯狂画微服务、分库分表、分布式锁,面试官才会满意地点头。
你学到了什么?你学到的是:复杂性才能显得你聪明,哪怕它是毫无必要的。
克制,才是最高级的炫技
难道老实人就活该吃亏吗?面对职场里这种“未挣得的复杂性(Unearned complexity,那些不必要的、额外的复杂元素)”,我们到底该怎么办?
作为一名写了多年代码、也面试过N多人的老兵,我想带你看看Go 语言的生存哲学。
如果你把编程语言拟人化,Go 就是那个在技术圈里坚持写简单代码的“老实人”。
在众多技术论坛上,用 Rust 编写一个极其复杂的生命周期标注,或者玩弄高级宏,往往能赢得满堂喝彩,被视为“真正的技术极客”。而 Go 团队呢?他们拒绝加入复杂的特性,坚持去构造函数、去继承。结果常常被嘲笑“简陋”、“缺乏智力挑战”。
这就和你我在职场中的处境一模一样:人们很容易为解决极其复杂问题的精巧设计而惊叹,却极难去赞美为了“把复杂性挡在门外”而付出的巨大克制。
但结果呢?Go 凭借着这种极简,支撑起了整个云原生时代的半壁江山。Go 证明了一个硬道理:真正的工程实力,从来不是看你能堆砌多少种设计模式,而是看你能否用最直白的结构,解决最复杂的业务。
任何一个新手都能把系统搞复杂;只有具备了足够的经验和自信,你才懂得何时应该留白。
破局路径:如何包装你的“简单”?
如果你认同“简单”的价值,但又不想在绩效和晋升上吃亏,你就必须学会一套“防御性职场包装术”。
记住这个核心心法:你的代码可以很简单,但你必须让别人看到你达成简单的“思考过程”有多复杂。
工作成果本身是不会说话的,你需要把“决定不做什么(Value of NOT building)”转化为你的影响力。从今天起,改变你的表达方式。
你照着做就行:晋升/答辩对线话术模板
无论是在写周报、写晋升材料,还是在架构评审会上,直接套用以下模板:
场景一:写晋升材料 / 简历
❌ 吃亏的普通写法:
“独立负责了功能 X 的开发,编写了 50 行核心代码,按时上线,没有出 Bug。”
(评委:这活儿实习生也能干。)
✅ 高绩效的降维打击写法:
“主导了功能 X 的架构演进。深度评估了包括事件驱动架构、自定义中间件抽象等三种高并发方案,从 ROI(投入产出比)和系统熵增角度,排除了现阶段不必要的过度设计,为团队节省约 15 人日的研发与运维成本。最终敲定极简直白架构,两天内完成交付,并在过去 6 个月内保持零故障运行,确立了团队‘务实驱动’的工程标杆。”
场景二:架构评审会遭遇“过度设计”逼问
当有人在会议上质问你:“难道我们不应该加个抽象层,为了未来百万并发做防范(future-proof)吗?”
不要立刻妥协去加代码。
✅ 教科书级硬核回击:
“我做过推演:如果以后确实需要扩展,添加这个层级只需要大约 2 天的重构代价;但我同样评估了,如果现在就强行加上,会立刻增加 30% 的系统复杂度和长期的维护成本。基于目前的业务增速,这属于‘未挣得的复杂性’。权衡之下,我认为我们现在的架构决策应该是‘等待’。”
你不是在对抗,你是在向所有人展示:你看到了复杂性,并且你用专业的工程判断力,主动选择击碎了它。
写在最后
无论你是写日常业务代码,还是设计分布式系统,“简单”永远是最难达到的境界。
如果我们继续只奖励复杂性,无视简单性,就不要对屎山代码越来越臃肿感到惊讶。希望这篇文章,能帮到那些依然在坚持写出整洁、克制代码的无名英雄们。
今日互动:
你在公司里,是那个苦逼的“工程师A”吗?你见过最离谱的“PPT过度架构”是什么样的?
欢迎在评论区吐个槽。
突破瓶颈,构建属于你的“极简工程审美”
很多读者问我,如果不去学那些花里胡哨的设计模式,怎么提升核心竞争力?我的答案是:深入理解一门把“简单”做到极致的语言,去品味它背后的架构决策。
如果你的 Go 技能卡在了“熟练”到“精通”的瓶颈期,渴望提升软件设计能力,驾驭复杂项目却缺乏章法——
我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力。目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变!

认知升级:跳出内卷,成为“定义规则”的人
有很多读者看完可能会问:Tony老师,如果我不去卷那些花里胡哨的复杂架构,在这个技术内卷的时代,我该如何建立自己不可替代的核心竞争力?
我的答案是:转换赛道,从“拧螺丝的人”升级为“造工厂的人”。
尤其是在大模型爆发的今天,如果你还在试图靠“手敲成千上万行复杂的代码”来证明自己的不可替代性,你不仅会输给那些擅长写PPT的同事,更会被不知疲倦的 AI 无情淘汰。因为机器,比你更擅长制造复杂的代码。
真正的聪明人,早就停止了这场无效的内卷。他们把“简单”的工程哲学发挥到了极致:他们只专注于最高价值的“定义目标与架构决策”,然后把所有繁琐的、底层的“拧螺丝”工作,统统外包给 AI Agent。
厌倦了为了晋升而制造复杂性?想要彻底跳出旧的评价体系,实现开发效率的降维打击?
我的新专栏《AI原生开发工作流实战》正是为你准备的破局利器。在这个专栏里,我不教你虚无缥缈的理论,只教你如何把 AI Agent(如 Claude Code)变成你手下最不知疲倦的“高级外包”。
- 告别低效内耗,重塑开发范式:用 AI 抹平代码复杂度的壁垒,让你专注于业务与架构本质。
- 驾驭 AI Agent 工作流:手把手教你实现从需求分析、代码生成到测试的自动化流水线。
- 实现职场跃升:带你从苦哈哈的“AI 工具使用者”,进化为规范驱动开发的“工作流指挥家(软件工厂厂长)”。
不要再用战术上的勤奋(写复杂的代码),去掩盖战略上的懒惰(拒绝使用新杠杆)。
扫描下方二维码,开启你的 AI 原生开发之旅,把复杂留给机器,把晋升留给自己。

商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。



评论