为什么AI总是改错地方?因为你没搞懂这件事
你有没有遇到过这种情况:
让AI帮你改一个功能,结果它改了一堆不相关的文件? 或者改完之后,其他地方莫名其妙出bug了?
问题出在哪?
因为AI不知道你的项目是怎么组织的,它在"盲改"。
这篇文章教你理解项目结构,让AI改代码时更精准、更可控。
📚 这是「AI编程10讲」系列第3篇
不教写代码,教怎么让AI帮你写代码。 从编程本质到产品落地,10篇文章带你掌握AI时代的核心能力。
| |
|---|
| |
| |
| 👉 03 理解项目结构 | |
| |
| Cursor、Kiro、Claude Code 怎么选、怎么用 |
| 从 Prompt 到 Agent,理解工具为什么这样设计 |
| |
| |
| |
| 1 年后,大部分应用将通过 AI 全自动编写并落地 |
上一篇回顾
上一篇讲了黑盒思维:只关心输入输出,让 AI 实现中间逻辑。
这一篇讲:怎么理解项目的文件结构,让 AI 改代码时更精准。
核心理念
先搞清楚每个文件夹是干什么的,操作 AI 时心里才有数。
核心原则:后端功能与功能隔离,前端页面与页面隔离。
注意:下面用 FastAPI + React 举例,但这只是示例。核心是理解"隔离原则",不是死记这个结构。
一、为什么要理解项目结构
AI 编程的核心:上下文
AI 的能力取决于你给它的上下文。
上下文越清晰 → AI理解越准确 → 生成的代码越好
文件越独立、耦合越少:
为什么要隔离
高耦合: 低耦合:文件A ←→ 文件B 文件A(独立) ↑ ↓ 文件B(独立) └── 文件C ──┘ 文件C(独立)
随着 AI 升级,你也变强
你的代码结构好 → AI能力升级 → 同样的代码效果更好 → 你不用改任何东西
关键洞察:
- 今天 AI 做 80 分的事,明天可能做 95 分
二、后端结构(以 FastAPI 为例)
核心文件夹
backend/app/├── models/ # 定义数据库表长什么样├── schemas/ # 定义接口输入输出的格式├── api/ # 定义接口(工具)└── services/ # 复杂的业务逻辑
每个文件夹干什么
功能隔离
用户功能 = models/user.py + schemas/user.py + api/users.py视频功能 = models/video.py + schemas/video.py + api/videos.py评论功能 = models/comment.py + schemas/comment.py + api/comments.py
每个功能一套文件,改用户不影响视频,改视频不影响评论。
三、前端结构(以 React 为例)
核心文件夹
frontend/src/├── pages/ # 页面├── components/ # 可复用的小组件├── stores/ # 存储数据/状态└── api/ # 调用后端接口
每个文件夹干什么
页面隔离
用户列表页 = pages/UserList.tsx视频列表页 = pages/VideoList.tsx设置页 = pages/Settings.tsx
一个页面一个文件,改用户页面不影响视频页面。
四、灵活应对不同项目
每个项目结构都不一样
上面讲的 FastAPI 和 React 只是示例,实际项目可能完全不同。
项目A: models/ + api/ + services/项目B: entities/ + controllers/ + repositories/项目C: domain/ + infrastructure/ + application/
不要死记结构,要学会快速理解任何项目。
拿到新项目第一步:理解架构
拿到新项目 → 先看目录结构 → 理解每个文件夹作用 → 找到功能隔离的边界 → 开始操作
问自己这几个问题
五、动态评估 AI 能力边界
AI 能力是动态的
简单任务 → AI直接搞定中等任务 → AI需要引导复杂任务 → 拆成小任务给AI
根据任务复杂度调整策略
实时评估,灵活调整
第一次尝试 → AI效果不好 → 拆成更小的任务第一次尝试 → AI效果很好 → 可以给更大的任务
不要固定思维,根据AI的实际表现动态调整。
六、隔离原则总结
七、实战:添加新功能
场景:添加"评论"功能
第一步:确定要创建哪些文件
后端(按功能隔离):├── models/comment.py # 评论模型├── schemas/comment.py # 评论结构├── api/comments.py # 评论接口└── services/comment_service.py # 评论业务逻辑(可选)前端(按页面隔离):├── api/comment.ts # 评论接口调用├── stores/commentStore.ts # 评论状态(可选)└── components/CommentList.tsx # 评论列表组件
第二步:分步骤让 AI 实现
后端model → 后端schema → 后端api → 前端api → 前端组件
分步骤让 AI 实现,能帮你理顺逻辑,也方便检查每一步的结果。
八、给 AI 的指令模板
注意: 这里只是简化的示例,展示基本的沟通结构。
实际项目中,你可能还需要附带详细的需求说明、业务逻辑、边界情况等。具体怎么写,后面「文档驱动编程」那篇会详细讲。
后端新功能
帮我实现 [功能名] 的后端接口需要创建的文件:1. models/xxx.py - 数据模型,字段: id, name, ...2. schemas/xxx.py - 请求响应结构3. api/xxx.py - CRUD接口参考现有的 models/user.py 和 api/users.py 的写法
前端新页面
帮我实现 [页面名] 页面需要创建的文件:1. pages/XxxList.tsx - 列表页面2. api/xxx.ts - 接口调用参考现有的 pages/UserList.tsx 和 api/user.ts 的写法
九、总结
核心原理
AI 编程的核心是上下文。
文件独立/低耦合 → 上下文清晰 → AI效果好 → AI升级你也变强
核心原则
理解目录结构 → 功能/页面隔离 → 精准指导AI → 项目稳定可控
记住这几点
文件夹速查
理解了项目结构,操作 AI 就心中有数!
📌 本篇要点
👉 下一篇预告
下一篇讲「文档驱动编程」——什么时候需要写文档,什么时候可以直接Vibe?
复杂功能怎么和AI协作才不会乱,关注不迷路。
💬 互动话题
你接手过结构混乱的项目吗?AI改代码时踩过什么坑? 评论区聊聊你的经历~
作者:拿铁蝈蝈 这套内容原是给公司员工培训使用,现在分享出来,希望对大家有帮助。 觉得有用的话,转发给还在手写代码的朋友吧 😄