当前的AI编程助手如 Cursor 等工具采用了一种较为简化的工作模式——用户提出需求,AI负责实现整个工程。这种方式对于小型项目确实高效便捷,但面对复杂度更高的系统开发时,其局限性逐渐显现。
1. 代码关联性理解不足
AI在处理小型项目时表现出色,但面对大型项目时常常顾此失彼。它可能:
- 不知道项目中已有的功能实现,重复造轮子
- 修改一处代码后,忽略了对其他依赖模块的影响
- 无法全面理解前后端交互的完整流程
2. 缺乏持续性记忆
在多日开发过程中,AI容易:
- 今天修复的 bug,明天又重新引入
- 忘记之前的设计决策和解决方案
- 随着项目进展,debug 效率逐渐降低
3. 难以理解已有代码库
- AI难以准确定位需要修改的文件
- 不理解项目的架构设计和模式
- 倾向于编写新代码而非理解和修改现有代码
思考与解决
文档驱动开发
将 AI 作为文档维护者,不仅仅是代码生成器:
- 项目开始前:让 AI 生成项目架构文档,包括前后端交互流程、API 设计和数据模型
- 开发过程中:每次修改代码前,先更新文档,再根据文档修改代码
- 实用技巧:创建一个”项目笔记”文件,记录关键决策和常见问题的解决方案
- 数据利用:让 AI 知道代码的基本架构、设计思想、不同的函数放在哪些文件里。组件库文档,使用案例等
灵感来自 Manus 的 Planner 角色做的 todo.md
分而治之
将复杂项目分解为可管理的模块:
- 模块化提问:不要让 AI 一次处理整个项目,而是针对特定功能模块提问
- 增量开发:先让 AI 实现核心功能,再逐步添加复杂特性
- 代码复用检查:每次请求新功能前,先让 AI 检查项目中是否已有类似实现
- 工具调用:工具组合起来就是瑞士军刀,准确度和效率提升,MCP 服务。eg: 图像搜索,浏览器模拟,Figma 设计工具联动等
人机协作
将自己定位为架构师和审核者:
- 结构由人定:你决定项目的整体架构和关键接口
- 细节由AI填充:让 AI 实现具体的方法和功能
- 定期审核:不要盲目接受 AI 的所有建议,特别是涉及架构决策时
- 知识积累:将 AI 的解释和实现作为学习资料,而不仅仅是复制粘贴
更为平衡的人机协作模式
我们可以探索一种更为平衡的人机协作模式。在这种模式下,开发者承担起更具战略性的角色:设计文档框架、确定核心架构、制定关键决策点。而 AI 则发挥其在细节实现和辅助创作方面的优势。
具体而言,当项目需要进行重要变更时,工作流程可以是:
- AI 基于现有代码和需求分析,提出文档更新建议
- 开发者审核这些建议,进行必要的调整和决策
- 确认后的文档成为后续开发的指南
- AI 根据这份经过人工确认的文档执行具体的代码修改
这种协作方式既避免了过度依赖AI有限的上下文记忆能力,也让开发者从繁琐的实现细节中解放出来,专注于更高层次的设计思考。同时,文档作为中介和桥梁,成为人机之间有效沟通的媒介,确保了开发过程的连贯性和一致性。
在实践中,这种方法可能比完全依赖 AI 或完全依赖人工更为高效,特别是对于那些需要长期维护和迭代的复杂系统。它代表了一种更为成熟和可持续的软件开发范式,值得在实际项目中尝试和完善。
现在还处于整个 Agentic AI 萌芽时期。它已经给了整个软件开发领域很大的震撼。开发效率提升很多,但是还有些局限,市面还未有成熟解决方案,也值得我们去思考解决🤔。