用 AI 从零搭企业级应用?踩了20个坑后,我总结出这套工作流
用 AI 从零搭企业级应用?踩了20个坑后,我总结出这套工作流
试过用 AI 写项目但越写越乱的,评论区举个手。
很多人用 AI 写代码,停留在"帮我写个函数"的阶段。真要做一个企业级应用——有数据库、有缓存、有消息队列、有鉴权、有日志监控、有 CI/CD——你会发现 AI 写的代码拼到一起根本跑不起来。
不是 AI 不行,是姿势不对。
过去三个月,我用 AI 工具链从零搭了三个生产级项目,从最简单的 CRUD 到多服务的微服务架构。中间踩了无数坑:AI 瞎编 API、依赖版本冲突、安全漏洞、测试覆盖率为零、重构一次崩一次。
踩完这些坑之后,我整理出了一套相对靠谱的工作流——人把控架构和决策,AI 负责实现和填充。程序员的角色从"写代码的人"变成了"技术负责人 + 代码审查者"。效率提升多少?保守估计 2-3 倍,而且代码质量反而更高。
这篇文章把完整流程拆给你,从需求到上线,每一步该用什么工具、怎么 prompt、哪些坑要避开,全都说清楚。
本文提纲
- 先搞清楚:企业级应用到底难在哪
- AI 工具栈选型:不是只有 ChatGPT
- 第一阶段:需求拆解与架构设计(AI 只能当参谋)
- 第二阶段:编码实现的正确姿势
- 第三阶段:测试与质量保障
- 第四阶段:部署与运维
- 最容易踩的 8 个坑
- 效率翻倍的几个实用技巧
先搞清楚:企业级应用到底难在哪
先说清楚一个前提:AI 写个单文件的小工具、写个算法题、写个接口,确实又快又好。但企业级应用的复杂度不在代码量,而在系统性。
一个正经的后端应用,至少要考虑这些:
- 分层架构:Controller / Service / DAO 层职责分离,不能一坨糊
- 数据一致性:事务边界在哪?失败了怎么回滚?
- 并发安全:有没有竞态条件?锁的粒度够不够?
- 错误处理:异常怎么分类?返回码怎么定义?日志怎么打?
- 安全:鉴权、权限、SQL 注入、XSS、敏感数据脱敏
- 可观测性:日志、指标、链路追踪,出问题能定位
- 扩展性:以后加功能会不会要大改?
- 部署运维:配置怎么管理?怎么灰度?怎么回滚?
这些东西,AI 单独搞不定。它可以帮你写每一层的代码,但架构决策、边界划分、风险判断,必须是人来做。
这也是很多人用 AI 写项目越写越乱的根本原因——一开始就让 AI 自由发挥,没有定好规矩。等代码堆到几千行,架构已经烂了,重构成本极高。
所以正确的顺序是:人先定骨架,AI 再填肉。骨架歪了,肉再多也是畸形的。
AI 工具栈选型:不是只有 ChatGPT
做企业级项目,不是一个工具走天下。不同阶段用不同的工具,效率差很多。
| 阶段 | 推荐工具 | 原因 |
|---|---|---|
| 架构设计、方案讨论 | Claude 网页版 / GPT-4o | 长上下文,适合聊方案、画架构图 |
| 编码实现、重构 | Claude Code / Cursor / Windsurf | 能直接操作项目文件,理解整个代码库上下文 |
| 代码审查、找 bug | Claude Code / GitHub Copilot | 逐行分析,发现隐藏问题 |
| 写测试用例 | Claude Code | 结合源码生成边界测试 |
| 写文档、README | 任意大模型 | 结构化输出就行 |
| 调试报错、排查问题 | Claude Code + 终端 | 直接读错误日志和相关代码 |
| 生成 SQL、脚本 | ChatGPT / Claude | 单次任务,快速出结果 |
核心工具推荐 Claude Code 或者 Cursor,二选一就行。这两个都是能直接操作你本地项目的 Agent 型工具,不是聊天框里贴代码那种。
Claude Code 是 CLI 形式,适合习惯终端的人;Cursor 是 IDE 形式,图形界面友好。底层模型差不多,主要是交互方式的区别。
有几个工具不建议作为主力:
- 免费的小模型:写简单逻辑还行,复杂架构容易瞎编
- 只能聊天不能读文件的:每次贴代码太麻烦,而且上下文有限
- 不支持多文件编辑的:重构的时候你会想死
第一阶段:需求拆解与架构设计(AI 只能当参谋)
这一步绝对不能交给 AI 主导。架构定错了,后面全是返工。
第一步:写一份需求文档
先自己把需求写清楚,不用很正式,但要覆盖:
- 这个系统是做什么的?给谁用?
- 核心业务流程有哪些?
- 非功能需求:并发量大概多少?响应时间要求?
- 数据规模:用户量、数据量、增长预期?
- 技术约束:必须用什么技术栈?有什么遗留系统要对接?
第二步:让 AI 当评审,不要让它设计
把你的需求和初步方案丢给 AI,问它:
"这是我设计的系统架构和技术选型,请从以下角度帮我评审:
- 有没有明显的架构缺陷?
- 哪些地方可能有性能瓶颈?
- 有没有安全风险?
- 这个方案未来扩展会遇到什么问题?
- 有没有更简单的替代方案?"
AI 是很好的"魔鬼代言人",它能想到你忽略的角落。但最终选哪个方案,必须你来拍板。
第三步:定好项目骨架
写第一行代码之前,先把目录结构定死:
src/
├── controllers/ # API 层,只做参数校验和返回封装
├── services/ # 业务逻辑层,核心业务在这里
├── repositories/ # 数据访问层,SQL 只在这里
├── models/ # 数据模型和 DTO
├── config/ # 配置管理
├── middleware/ # 中间件:鉴权、日志、异常处理
├── utils/ # 工具函数
└── tests/ # 测试然后把每一层的基类、公共异常、统一返回格式先写好。这些是规矩,AI 后面写代码必须遵守这个结构。
坑点提醒:如果一开始不把结构定好,AI 写着写着就会到处乱放文件,业务逻辑散落在 Controller 里,SQL 写在 Service 里,最后变成一坨屎山。
第二阶段:编码实现的正确姿势
骨架搭好了,终于可以让 AI 干活了。但不是说一句"帮我实现用户模块"就完事。
原则:一次只让它做一件事
不要一口气让 AI 实现整个模块。它会忘掉你定的规矩,写出不符合架构的代码。
正确的做法是分层推进:
1. 先写数据模型
"根据这个需求,帮我设计用户表和相关的 DTO,放在 models/ 目录下,遵循现有的命名规范。"
检查没问题了再下一步。
2. 再写数据访问层
"基于 User 模型,实现 Repository 层,包含基本的 CRUD 和按用户名查询。只操作数据库,不写业务逻辑。"
3. 然后写业务逻辑层
"实现用户注册的 Service 层逻辑:参数校验 → 检查用户名是否存在 → 密码加密 → 写入数据库 → 返回用户信息。异常用我们定义的 BusinessException。"
4. 最后写 Controller 层
"实现用户注册接口,调用 UserService,参数校验用我们的验证框架,统一返回格式。"
一层一层往上走,每一层写完你都 review 一遍,确认没问题再继续。这样出了问题也好定位。
怎么让 AI 遵守你的代码规范
两个技巧:
第一,给它看样板代码。
"参考现有的 UserController 的写法,实现 OrderController。保持同样的错误处理、返回格式、日志风格。"
第二,把规范写在项目的 README 或者 CONTRIBUTING.md 里。 像 Claude Code 这种工具会自动读取项目根目录的 README,你把编码规范写在里面,它自然会遵守。不用每次 prompt 都重复一遍。
重构的时候要小心
项目大了难免要重构。这时候最容易出问题——AI 改了 A 文件,忘了改 B 文件,编译直接报错。
我的经验是:
- 小重构:直接让 AI 改,但改完一定要跑一遍测试
- 大重构:先跟 AI 讨论重构方案,确认影响范围,再分步执行
- 绝对不要:一句话让它"重构整个项目",一定会崩
第三阶段:测试与质量保障
AI 写代码快,但如果没测试,你不敢上线。
让 AI 写测试,比你自己写快多了
测试是 AI 最擅长的领域之一。给它看函数实现,让它写单元测试:
"为 UserService 的 register 方法写单元测试,覆盖以下场景:
- 正常注册成功
- 用户名已存在
- 密码格式不符合要求
- 数据库写入失败
Mock 掉 Repository 层,只测 Service 逻辑。"
正常情况,一个函数的测试用例 AI 一分钟就能写完,覆盖的边界情况可能比你想的还全。
但有两件事 AI 做不好
1. 集成测试和端到端测试的设计 AI 不知道哪些场景是业务上真正重要的,哪些是边角料。测试策略得人来定。
2. 性能测试 AI 可以帮你写压测脚本,但瓶颈分析和优化方案还是要靠人的经验判断。
代码审查:AI 审一遍,人再审一遍
提交代码前,让 AI 先做一轮 code review:
"帮我 review 这次改动的代码,检查:
- 有没有明显的 bug?
- 有没有安全漏洞?
- 有没有性能问题?
- 符不符合项目的代码规范?
- 有没有可以简化的地方?"
它能发现很多你忽略的细节,比如空指针、SQL 注入风险、未处理的异常。但最终合不合入,还是要人来拍板。
第四阶段:部署与运维
写代码只是第一步,能稳定跑起来才是企业级。
Dockerfile 和部署脚本
AI 写 Dockerfile 很熟练,但要注意:
- 告诉它你的项目技术栈和版本
- 要求多阶段构建,镜像尽量小
- 明确哪些文件不需要打进镜像
- 安全方面:不要用 root 用户运行
K8s 的 YAML、CI/CD 配置这些,AI 也都能写,给它看你们的模板就行。
监控和日志
这部分 AI 能帮你写代码,但监控什么指标、告警阈值设多少,必须根据业务来定。AI 不知道你们系统的正常水位是多少。
排查问题的时候,AI 是神器
线上出 bug 了,把错误日志和相关代码丢给 AI:
"这是报错日志和对应的代码,帮我分析可能的原因和排查方向。"
大部分常见问题,AI 看一眼就能给你几个排查方向,比自己瞎猜快多了。特别是那种你从没见过的奇葩报错,AI 大概率见过类似的。
最容易踩的 8 个坑
这些都是我实打实踩过的,每一条都浪费了我至少半天时间。
1. AI 瞎编不存在的 API
最常见的坑。它会非常自信地调用一个根本不存在的方法,或者用错了参数。永远不要相信 AI 写的代码能直接跑,一定要自己过一遍。
2. 依赖版本冲突
AI 推荐的依赖版本经常不对,或者几个库版本不兼容。装之前最好查一下官方文档确认。
3. 安全漏洞
AI 写的代码容易出现 SQL 注入、XSS、硬编码密钥这些问题。涉及安全的代码一定要仔细审。
4. 忘了处理错误和边界
AI 写的"快乐路径"代码很流畅,但异常情况经常漏掉。空值、网络失败、超时、并发冲突——这些它默认不考虑,你得主动提醒。
5. 架构一致性丢失
写着写着,AI 就开始不按你定的分层来了。Service 里直接写 SQL,Controller 里塞业务逻辑。每写完一个模块都要检查结构。
6. 上下文丢失,重复造轮子
项目大了之后,AI 记不住所有已有代码,会重复实现已经存在的工具函数。写完搜一下项目里有没有类似的东西。
7. 测试只测正常路径
AI 写的默认测试基本都是 happy path。边界条件、异常场景得你明确要求它才会写。
8. 过度设计
AI 有时候会给你搞出特别复杂的方案,各种设计模式往上堆。记住:简单的才是最好的。能用 if-else 解决的,就别上策略模式。
效率翻倍的几个实用技巧
1. 建立项目级的 prompt 模板
把常用的指令存成模板,比如"写 Service 层"、"写单元测试"、"code review",每次直接套用,不用重新组织语言。
2. 善用"继续"指令
AI 输出一半截断了?别说"继续",说"从刚才断掉的地方接着写,保持同样的格式和风格"。效果好很多。
3. 复杂问题先让它想清楚再写
遇到难的问题,先让 AI 分析思路:
"先别急着写代码,说说你的实现思路和可能的问题。"
思路对了再让它动手,省得写出来一大坨不对的再改。
4. 小步提交,经常 commit
用 AI 开发,提交频率要比平时高。每实现一个小功能就 commit 一次,万一改崩了可以快速回退。
5. 别追求一次完美
第一版先让 AI 写个大概,能跑就行。然后你指出问题,让它迭代优化。比你一次把所有要求说清楚效率高。
参考文档与链接
- Claude Code 官方文档 — Anthropic 官方的 CLI Agent 工具
- Cursor 官网 — AI 原生的代码编辑器
- Windsurf 官网 — 另一个 AI IDE 选项
- GitHub Copilot — 老牌 AI 编程助手,适合补全
- AI 编程工具对比:Claude Code vs Cursor vs Windsurf — 三款主流工具的详细对比
- 企业级应用架构模式 — Martin Fowler 的架构文章,必看
- 测试驱动开发 (TDD) 入门 — 配合 AI 写测试的最佳实践
- 12-Factor App — 现代 SaaS 应用的开发方法论
你平时用 AI 写代码最多的场景是什么?评论区聊聊你的工作流。觉得有用点个赞,让更多人解锁正确姿势。
作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。
本文首发于 AI人工智能时代,转载请注明出处。