Post

和 AI IDE 合作

和 AI IDE 合作

AI IDE 是 AI 时代的 IDE,它将 AI 的能力集成到 IDE 中,开发还是那个开发,但 IDE 已经不是那个 IDE。

AI IDE 的优点

AI IDE 几乎全自动帮你完成项目开发。比如:

  1. 可以自动生成代码,提高开发效率,疗效十分明显。
  2. 可以自动修复代码,提高交付效率,疗效比较明显。
  3. 可以自动生成文档,提高文档质量,疗效比较明显。
  4. 可以自动生成测试,提高测试质量,疗效比较明显。

总而言之,AI IDE 可以替代人类完成几乎所有在 IDE 需要完成的工作。你想做啥,吩咐就行,前提是,你知道你想做啥,还有你知道做成什么样子,做到什么程度。

AI IDE 的能力远比 AI 插件(比如 CoPilot )强大,AI 插件需要你找到合适的代码位置给出清晰的提示才可能完成工作,而 AI IDE 缺的只是目标,有了目标它就可以调用 IDE API 完成所有工作,它自己会分析已有代码,按需获取环境上下文,设计和调整任务。AI 插件好比 GPS,它可以帮你规划路线,而 AI IDE 好比自动驾驶,你只需要告诉它目的地,它就能帮你完成所有工作。

AI IDE 的缺点

  1. 不是所有的模型都好用,需要花时间对比甄别。
  2. 基本都需要好的网络,也需要付费。
  3. 对复杂项目和长上下文,往往效果不理想。
  4. 结果不一致,每次结果就像开盲盒抛硬币。
  5. 可能会修改之前写好的代码,或者少修改需要修改的代码。

人类还需要做什么?

  1. 提供需求,你要能清楚的描述你想要什么,AI 才能开始干活。
  2. 评审结果,AI 不会背锅,你需要为 AI 负所有责任。
  3. 适当干预,甚至顶上,AI 在某些时候会犯浑,不听指挥或者胡言乱语。

和 AI IDE 合作应该做什么

  1. 整理好你的需求,并给出足够多的上下文。
  2. 按照软件工程的最佳实践,定义好尽可能多的规则和文档,比如需求文档、设计文档、代码规范、接口定义,DB 设计,测试规范等。
  3. 建立清晰的项目结构和代码组织方式,这样 AI 更容易理解和导航。
  4. 保持代码的一致性和可维护性,即使是 AI 生成的代码也要符合团队规范。
  5. 定期审查和优化 AI 生成的代码,管理和清还技术债务。
  6. 建立版本控制和代码审查流程,追踪 AI 所做的更改。
  7. 保存有效的 prompt 和最佳实践,建立团队的 prompt 工程指南。
  8. 不要害怕重来或者重构,重构的信心来自于测试,测试也可以让 AI 写

和 AI IDE 合作不应该做什么

  1. 盲目信任 AI 生成的所有代码,始终需要人工审查。
  2. 完全依赖 AI 而忽视代码的真实功能和意图。
  3. 忽略代码质量和安全性检查。
  4. 让 AI 直接操作生产环境或敏感数据。
  5. 期望 AI 能完全理解复杂的业务逻辑和特定领域知识。
  6. 使用过于模糊或不完整的 prompt。
  7. 在没有充分测试的情况下部署 AI 生成的代码。

AI IDE 产品对比

参考 https://metaso.cn/s/yPYhwGU

主流 AI IDE 产品比较:

  1. Cursor

    • 优势:出现的比较早,较为成熟,表现更佳。
    • 缺点:订阅费用较高。
  2. WindSurf

    • 优势:功能和 Cursor 基本一致。
    • 缺点:订阅费用也比较高。
  3. Trae

    • 优势:字节出品,暂时免费。
    • 缺点:新品,功能不太稳定,效果也差一些。

编写高效 Prompt 的建议

  1. 结构化描述

    • 清晰说明目标和要求,多用确定的词汇甚至数字,少用虚词
    • 提供具体的输入/输出示例,比如给出 api 请求结构
    • 指定代码风格和规范,比如参考某个类或者模块,或者给出具体的文档规范
    • 约束修改范围,改哪或者不改哪,甚至点名用什么方法,用什么技术栈
  2. 上下文提供

    • 给出相关代码片段,类,或者目录
    • 提供项目背景信息,比如项目介绍,或者为什么需要这个功能
    • 在实现前可以和 AI 讨论实现的必要性和方案
  3. 迭代优化

    • 通过对话补充信息
    • 根据结果调整 prompt 后重头提交
    • 保存有效的 prompt 模板
  4. 其他注意点

    • 建立和维护需求文档,API 文档,各种文档,因为你随时可能需要唤醒 AI 的记忆
    • 对话有长度限制,新需求最好开新对话,或者定期来新会话,AI 注意力不集中后容易乱编
    • 版本控制很重要,随时做好倒车的准备,每次功能到可保存的状态就要提交,如果是大功能建议开新分支
    • 尝试切换模型,对比结果,有些问题真的挑模型
    • 尝试切换对话方式和语气,对比结果,比如使用批评或者赞美(PUA)
    • 让 AI 插入必要的调试日志,然后通过提供调试日志给 AI 来排查问题,问题解决后再清理

尝试把 AI 当成一个团队伙伴,要有耐心,要给与尊重。尝试把 AI 当成一个从外面空降的专家,他固然厉害,但明显不了解你的业务需求,他可很有想法,最终还是需要你来决定他的实施方向。人类始终处于主导地位,否则做出来的东西必然是一堆胡言乱语的垃圾。

最后

多说无益,开始尝试起来你会有更深的感受和体会。这个时代 AI IDE 是不能回避的现实问题,如果你想当程序员的话。以上。

This post is licensed under CC BY 4.0 by the author.