2026年4月

前言:AI 并不是程序员的“清道夫”

在 AI 工具大行其道的今天,很多开发者甚至管理者产生了一个错觉:既然 AI 编写代码的效率如此之高,那么代码质量和项目结构是否已经不再重要?反正 AI 都能看懂,反正 AI 都能改。

然而,作为一名深耕行业十年的开发者,我必须指出一个残酷的事实:“屎山”代码的本质从来不是技术问题,而是工程管理问题。 如果项目的底层逻辑是一团乱麻,AI 不仅救不了你,反而可能因为盲目的代码生成,让这座山堆得更快、更不可撼动。


一、 屎山的起源:人为带来的非必要复杂性

“屎山”的根本问题在于人为带来的复杂性。当一个项目在起步阶段缺乏清晰的架构和工程结构,业务逻辑规则被无序地堆砌在一起时,噩梦就开始了。

  • 从狗窝到大厦:如果这只是一个大作业或一个小工具,它就像一个“狗窝”🐶。推了再建造就是,顶多是一个下午的损失,成本极低。
  • 生产环境的沉重:生产级项目需要持续运行数年,经历无数人的手。对于后来者来说,维护这样的系统不是在“建设”,而是在“吃💩”。
行业真相:为什么大家宁愿去新项目里继续“拉屎”,也不愿在老项目里“吃💩”?因为“拉屎”是畅快的、有产出的;而“吃💩”往往是不出成绩还要挨骂。面对板结的旧逻辑,重构意味着极高的测试成本和流程风险。

二、 逻辑的“复制粘贴”:职场生存的无奈选择

为什么优秀的程序员有时也会变成“造山者”?往往是因为现实环境的逼迫。

在严苛的生产流程中,改动一个核心函数的代价往往超乎想象:

  1. 流程阻力:领导要快,测试很忙,运维要走流程,UI 要审核,运营要验收,ROI 要评审。
  2. 风险规避:修改旧代码,万一出 Bug 谁负责?旧逻辑在那虽然乱,但它能跑。
  3. 生存法则:几百块钱一天的工资,没必要为了重构玩命。

于是,最稳妥的做法就是:开个新坑,把原来的代码复制一份到旁边,加一个新变量控制逻辑开关。 只要新逻辑能跑起来,没人关心项目结构变成了什么样。这种“保命式上线”,是屎山不断隆起的直接动力。


三、 软件工程的精髓:对抗认知极限

我曾遇到过奇葩的领导,认为“AI 时代代码逻辑可以随便复制了”。这种观点简直是把几十年的软件工程经验丢进了垃圾堆。

传统软件工程的精髓在于:承认人脑的上下文(Context)是有限的。

人类无法处理复杂度变态的系统,因此我们发明了关注点分离(Separation of Concerns)机制。我们将复杂的业务拆解成细小的、单一的逻辑块,最后再进行模块拼接。这是对抗系统熵增、保持项目可控的唯一武器。


四、 异曲同工:从 LLM 的 Sub-agent 看架构逻辑

有趣的是,今天大语言模型(LLM)的演进路径,竟然与软件工程的精髓完全契合。

当我们在搞 Sub-agent(子代理) 模式时,其核心逻辑依然是关注点分离

  • 如果给一个 Agent 太多的上下文和庞杂的任务,LLM 也会迷失方向,不知道推理重点在哪。
  • 最有效的做法是给子 Agent 一个干净的上下文清晰明确的任务说明

这证明了:无论是人类大脑还是硅基智能,在处理复杂逻辑时,都需要清晰的结构和边界。架构,就是给智能(人或 AI)划分最优的推理空间。


五、 结语:架构师在 AI 时代的保命符

在 AI 编码时代,人类参与单体小模块编写的必要性正在迅速消失。但是,架构的价值将被提到一个前所未有的高度。

架构师的根本任务将演变为:

  1. 对抗项目中人为带来的非必要复杂性。
  2. 管控必要复杂性,使其不要失控。

在强人工智能(AGI)真正降临并能接管整条生产线之前,人类必须搞清楚自己的项目代码结构。我们要利用 AI 的效率,但必须由人类来掌控全局的“关注点分离”。

请记住:代码最后的 Review 者依然是人。当系统崩溃、出现 P0 级事故时,200 美金的 Claude 可背不动你的锅。

写在第三次软件工程革命的前夕

大语言模型飞速进步,手写代码的时代已经结束,人工编码已无任何必要

回顾计算科学的发展史,我们一直在寻找更高效的方式与机器对话。从最早的打孔卡片、汇编语言,到C语言,再到如今高度封装的面向对象编程和各种现代框架,每一次跃迁都是对底层逻辑的进一步抽象。而大语言模型(LLM)的爆发,标志着这条抽象之路走到了终极形态——自然语言已经成为最强大的编程语言

现在的IDE不再仅仅是一个文本编辑器,它正在演变成一个意图解析器。面对海量的样板代码、标准的增删改查逻辑、甚至是复杂的算法实现,人类逐字逐句敲击键盘的投入产出比已经低到可以忽略不计。AI生成代码的速度和准确率已经跨越了“玩具阶段”,正式进入了工业级生产。在这个时代,坚持纯手工编码就像是在内燃机普及后依然坚持乘坐马车,这不仅是对生产力的巨大浪费,也是对工程演进规律的无视。手写代码的时代大幕正在落下,对于绝大多数标准化的软件构建而言,人工编码确实已无任何必要。

LLM加速技术平权,技术人员积累经验的核心价值在飞速贬值,八股面试已不可取 

过去几十年,技术人员的护城河往往建立在“经验积累”之上:熟悉某种语言的暗坑、背诵复杂的API签名、精通某个框架的底层源码,甚至是如何在不同环境下配置依赖。然而,LLM的出现无情地抹平了这道知识壁垒。一个逻辑清晰、善于运用AI的初级工程师,完全可以借助模型输出媲美资深工程师的高质量代码。技术平权正在以前所未有的速度发生。

在这样的背景下,企业招聘中依然盛行的“八股文”面试显得极其荒谬且滞后。考察候选人如何手写红黑树、如何死记硬背JVM调优参数或是CSS的各类边角料特性,已经完全脱离了现代软件工程的实际需求。当AI能在几秒钟内给出最完美的标准答案时,人类记忆力和熟练度的核心价值正在飞速贬值。未来的核心竞争力不再是“记住答案”,而是“提出正确的问题”——即问题拆解能力、系统边界定义能力以及对业务逻辑的深度抽象能力。

软件工程颠覆性重构,人类工程师应该聚焦在更高层的概念设计与对复杂系统的理解

告别“猪突式”开发,转向系统化Agent体系构建

过去国内的软件开发往往被业务推着走,习惯于“大力出奇迹”。一旦确立了需求,最常见的做法就是快速拉齐团队、堆砌人力、直接上手编码,这种“猪突式”的战术在人口红利期或许有效,但在AI时代已完全不可取。既然代码产出本身不再是瓶颈,那么“写得快”就不再具有决定性意义。

人类工程师的时间和精力必须从繁重的低级编码中解放出来,向上跃迁到更高层的概念设计。我们的工作重心将彻底转移到系统架构的宏观把控上:如何定义领域模型,如何划分微服务边界,以及最重要的是——如何构建一套系统化的Agent工具体系来辅助生产。这包括但不限于引入LLM网关进行提示词路由和流量管控,或者搭建多模型服务平台,让不同专长的AI模型协同处理代码生成、测试覆盖和安全审计等工作。工程师将从“泥瓦匠”转变为“流水线设计师”。

消解非必要复杂性,技术栈的大收敛时代

软件工程巨匠Fred Brooks曾将软件的复杂性分为“本质复杂性”和“非必要复杂性”。一直以来,工程师们耗费大量生命在配置环境、解决依赖冲突和查阅StackOverflow上,这些都是典型的非必要复杂性。LLM的出现极大地缓解了这一痛点,人类不再需要成为各个报错信息的搜索引擎。

随之而来的,将是框架和技术栈的残酷大收敛。AI将扮演技术栈的“自然选择”过滤器。那些文档完善、开源社区活跃、历史语料丰富的框架,AI写得最好、bug最少。因此,越来越多的团队会倾向于使用这些“AI友好型”框架,从而产生更多语料,形成正向循环。反之,那些语法孤僻、缺乏语料的小众框架和晦涩技术栈将因为AI支持不佳而彻底走向消亡。人类工程师应该顺应这一趋势,彻底放弃在低层次技术实现细节上的内卷,将全部心智聚焦于对复杂业务系统的理解与顶层设计。

再次回顾人月神话, Code Agent解决了什么问题

《人月神话》中揭示了一个残酷的定律:向进度落后的软件项目中添加人手,只会让进度更加落后。其根本原因在于,软件开发是一项高度依赖沟通协作的工作。人数的增加会导致人际沟通路径呈几何级数爆炸,最终让项目陷入万劫不复的“焦油坑”。

在过去,这似乎是软件工程的一个无解魔咒。但Code Agent 成熟,精准地切中了这个历史级痛点。** 它们通过自动化和智能化的代码生成、测试桩生成与集成测试,极大地压缩了项目所需的人力规模。过去需要十人协同一个月的模块,现在可能只需要一名资深架构师带领一群不知疲倦、无需沟通成本的Code Agent,在几天内就能完成。

这种模式让Brooks曾设想的“外科手术式开发团队”——由极少数精英主导,大量辅助工具支撑——真正具备了可落地的土壤。人和机器的沟通,远比人与人的沟通更加精确、高效且没有情绪内耗。因此,一个冰冷但必然的趋势是:大量只负责低端增删改查和简单逻辑实现的基础编码人员将面临下岗。 团队的规模将大幅缩减,但单兵作战的能力和项目的交付效率将得到指数级提升。

沪ICP备2024084999号-1