AI 写代码只会生成屎山?聊聊我的踩坑与高效避坑指南
最近在折腾个人项目,想着试试现在的 AI 编程到底能省多少事。刚开始信心满满,专门梳理了很详细的需求文档,觉得只要指令下得够明确,AI 肯定能给我整出个架构清晰的 MVP。
结果现实狠狠打了脸。
用 Codex 配合 Superpower 跑了一圈,写出来的代码简直就是“屎山”集大成者。各种函数互相引用,毫无分层可言,改一个地方能连带崩一堆逻辑。越重构越觉得这代码像一团揉烂的毛线,根本理不清线头。我相信不少刚上手 AI Coding 的朋友应该也有类似的体会:看着代码能跑,但稍微想扩展一下功能,维护成本比自己手写还高。
AI 直接生成的大模块代码往往缺乏分层,逻辑像揉烂的毛线一样难以理清
痛定思痛,我决定推倒重来,顺便总结了一些让 AI 输出“人类可读代码”的经验。
1. 别指望 AI 一次成型,要学会“切香肠”
之前最大的误区就是把整个大模块的需求直接甩给 AI,让它生成几百行代码。它确实能写出来,但因为缺乏全局视野,逻辑往往是平铺直叙的,该拆分的时候没拆分,该抽象的时候写死了。
正确做法是把复杂逻辑拆解成极小的子任务。比如你要写一个数据解析模块,就让 AI 先写“接口定义”,再写“数据校验”,最后写“具体转换逻辑”。每一步都先确认结构和逻辑正确,再去生成下一部分的代码。这样虽然看着慢一点,但能保证代码的层级结构是清晰的。
2. 约束上下文,明确代码规范
AI 写的代码乱,很大一部分原因是因为它不知道你的代码目录结构长什么样。如果你告诉它“帮我写一个用户登录功能”,它可能凭经验这就给你来一个老套的三层架构,文件路径都和你项目对不上。
Trellis 架构设计、Codex 代码生成与 Superpower 审查的工具链组合
我的方案是:在 Prompt 里显式指定文件路径、引用的依赖库以及函数命名规范。比如我打算用 Trellis 来重构,就会先预设好目录结构。然后告诉 AI:“在 src/auth 目录下创建文件,仅依赖 utils/api.js,函数名使用驼峰命名,必须包含错误处理中间件。”
把“规范”变成“强制指令”,能大幅减少它自由发挥乱引用的情况。
3. Codex + Superpower + Trellis 的工作流尝试
关于工具链,目前我打算这么折腾:
- Trellis:用来做顶层架构设计和视觉化管理。先在 Trellis 上把项目拆分成几个核心模块,理清依赖关系。这相当于给 AI 画了个圈,告诉它哪里能写,哪里不能动。
- Codex:作为底层的代码生成引擎。在 Trellis 确认好模块边界后,由 Codex 负责具体的函数实现。
- Superpower:用来作为代码审查和补全的中间件。生成代码后,用 Superpower 跑一遍静态检查,看看有没有明显的引用错误或逻辑漏洞。
这套组合拳的核心在于“分而治之”。架构归架构,实现归实现,不让 AI 既当设计师又当泥瓦匠,这样它就不容易把房子盖歪。
4. 还是要写注释,但不是为了机器
虽然 AI 也能看代码,但我发现生成代码前,先手动写一段关键的“伪代码”或逻辑注释,效果极好。比如在一个函数开头写清楚:
// 1. 先检查缓存 // 2. 缓存未命中则调用 API A // 3. 如果 API A 失败,降级调用 API B // 4. 统一格式化返回结果
把逻辑骨架立住,再让 AI 填肉,它就不会天马行空地给你整出什么递归调用来。
写在最后
AI 辅助编程确实能提高效率,但它目前还没强到能完全替代人类工程师的架构能力。把它当成一个“手速很快但需要严格指导的实习生”,可能心态会好很多。
佬友们如果有什么更稳的 Prompt 技巧或者好用的工具链,欢迎在评论区交流,毕竟谁也不想天天收拾 AI 留下的烂摊子。

评论已关闭