当前的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 则发挥其在细节实现和辅助创作方面的优势。

具体而言,当项目需要进行重要变更时,工作流程可以是:

  1. AI 基于现有代码和需求分析,提出文档更新建议
  2. 开发者审核这些建议,进行必要的调整和决策
  3. 确认后的文档成为后续开发的指南
  4. AI 根据这份经过人工确认的文档执行具体的代码修改

这种协作方式既避免了过度依赖AI有限的上下文记忆能力,也让开发者从繁琐的实现细节中解放出来,专注于更高层次的设计思考。同时,文档作为中介和桥梁,成为人机之间有效沟通的媒介,确保了开发过程的连贯性和一致性。

在实践中,这种方法可能比完全依赖 AI 或完全依赖人工更为高效,特别是对于那些需要长期维护和迭代的复杂系统。它代表了一种更为成熟和可持续的软件开发范式,值得在实际项目中尝试和完善。


现在还处于整个 Agentic AI 萌芽时期。它已经给了整个软件开发领域很大的震撼。开发效率提升很多,但是还有些局限,市面还未有成熟解决方案,也值得我们去思考解决🤔。