AI 写的代码,会把项目拖成屎山吗?
AI 写的代码,会把项目拖成屎山吗?
最近在知乎看到一个很典型的问题:用 AI 写的代码,会不会最终把整个项目变成屎山?
提问者的担心很真实:大项目希望风格统一、架构有整体性,而现阶段的 AI 往往更像「按功能块交作业」——那如果团队越来越依赖 AI,健壮性、可维护性还能不能保住?程序员的能力会不会被「掏空」,最后谁也改不动?
先把结论说在前面:会不会变成屎山,主要取决于你怎么做软件工程,而不是代码主要来自人还是来自 AI。
AI 改变的是「写出一坨能跑的东西」的成本曲线;而屎山的本质,是系统在时间维度上失控——边界不清、契约不稳、知识不沉淀、变更不可追溯。这些问题在「没有 AI」的年代同样大量存在,只是堆得可能慢一点。

题图由模型生成,画内主标题为平台内容安全使用「失控」表述,与文首标题用词不同,以正文论述为准。
一、别只盯着代码:软件开发首先是系统工程
很多人聊这个话题时,会默认「项目 = 代码仓库」。但从软件工程视角看,代码只是交付物之一,更靠前的是一整套问题:
需求有没有被澄清?有没有可验证的验收标准?架构上模块边界怎么划、依赖方向怎么管?规范、评审、测试、发布、观测、回滚这一套,有没有形成闭环?
换句话说:健壮性和可维护性,首先是组织与方法论的产物,其次才是某段实现漂不漂亮。
如果你把 AI 当成「更快的打字员」,却缺少上面的约束,屎山概率会上升;如果你把 AI 当成「在规范里干活的协作者」,它反而可能帮你把重复劳动外包掉,让人把注意力留在更难、更关键的地方。

二、「屎山」不是 AI 特产:风险类型并没有本质不同
同一个功能点,不同程序员写出来的质量本来就可能差很多——风格、抽象、边界处理、对失败路径的敏感程度都不同。AI 并不神奇地制造一种全新的坏;它更像把「实现速度」提上去了,于是坏得更快、堆得更快——前提是缺少工程护栏。
反过来看,AI 还有一个常被忽略的效果:它会拉平一部分「下限」——比如更一致的格式、更常见的套路、更标准的样板代码。真正决定上限的,仍然是架构取舍、领域建模、演进策略,以及你对复杂度的管理。
所以更准确的问法不是「AI 会不会让项目变屎山」,而是:你的工程体系,能不能在 AI 加速产出时,同步加速「约束与验证」?
三、大型系统为什么还能跑:不是靠「仓库里每一段都优雅」
很多大型软件生产,本来就是流水线:需求、设计、开发、测试、发布、运维,各自有入口准则与出口标准。线上能稳定运行,通常不是因为每一段代码都优雅,而是因为:
-
• 分层与模块化让局部问题不至于拖垮全局(当然代价是治理成本); -
• 自动化测试与质量门禁把明显问题拦在上线前; -
• 可观测性、灰度、回滚让线上风险可控; -
• 规范与评审把「个人随意发挥」限制在可接受范围。
这套逻辑放到「AI 生成代码」上同样成立:关键不是禁止 AI,而是让 AI 的产出进入同一套质检与合流机制。 没有这套机制,纯手写也一样会屎山,只是堆得慢一点而已。

四、真正的大坑往往不是 AI,而是「一个人扛所有」
很多小团队没有专职 PM / 测试 / QA,文档也不系统,靠一个大牛把关键路径记在脑子里。短期很爽,长期风险极高:知识集中度就是单点故障,换人、扩容、事故复盘都会痛苦。
相比之下,AI 至少不会「离职」。更现实的风险反而是:团队误以为「能跑就行」,把工程化省略掉——这在没有 AI 时也会发生;有了 AI,只是让这种省略更快暴露。
我会把问题改写成一句更「系统论」的话:AI 让你更容易快速堆出复杂度;如果你没有工程化,你会更快撞上复杂度墙。 这不是道德判断,是系统结构决定的。
五、想在大项目里稳住质量:把依赖从「人脑」迁到「体系」
如果你想在较大项目里保持健壮性和可维护性,建议把精力放在这些抓手(比争论「AI 会不会让人变笨」更管用):

-
1. 边界与契约优先:模块接口、数据契约、错误语义先谈清楚;AI 更适合在边界内填空。 -
2. 规范即代码:格式化、lint、目录结构、提交信息、分支策略——让机器先替你守门。 -
3. 测试策略分层:单测保逻辑,集成测保协作,关键路径要有回归;AI 写的代码同样要过同一套门禁。 -
4. 可观测与发布纪律:日志、指标、追踪、灰度;让线上问题可定位、可止血。 -
5. 知识沉淀:ADR(架构决策记录)、Runbook、接口文档——别让「能跑」替代「可交接」。
你会发现:这套东西和「AI 还是人写」关系不大;它决定的是项目能不能扛住时间与人员变化。
六、程序员能力会不会下降?
更可能发生的是能力结构变化:
-
• 手写样板与死记硬背的比重下降; -
• 读代码、定位问题、抽象建模、权衡取舍、推动规范落地的比重上升。
如果你把 AI 当拐杖绕过思考,能力会退化;如果你把 AI 当杠杆,把省下来的时间投入到架构、质量与协作上,能力会升级——只是升级的方向更像「工程师」,而不只是「码农」。
一句话收尾:屎山不是「AI 代码」这种病,而是「系统工程缺位」这种体质;AI 只是让体质差的人更快看见后果,也让体质好的人更快交付。你要对抗的不是 AI,而是失控的复杂度本身。
夜雨聆风