AI 编程工具

AI 编程工具

目录


AI coding

业界已有的AI编程工具按照插件IDE独立终端三个维度进行划分:

类型 工具名称 开发商 主要功能特点 支持的IDE/平台
插件 GitHub Copilot GitHub/Microsoft 基于GPT-4模型的代码补全,支持多种编程语言,自动生成代码建议 VS Code, JetBrains, Visual Studio, Neovim
插件 Codeium Codeium 免费AI代码补全工具,支持多种模型,提供代码生成和聊天功能 VS Code, JetBrains, Vim, Emacs
插件 Amazon CodeWhisperer Amazon AWS官方AI编程助手,支持代码补全、安全扫描和代码建议 VS Code, JetBrains, Visual Studio
插件 Tabnine Tabnine 企业级AI代码补全,支持私有部署,提供代码预测和自动完成 VS Code, JetBrains, Vim, Sublime
插件 Continue Continue.dev 开源AI编程助手,支持多种模型,提供代码编辑和聊天功能 VS Code, JetBrains
插件 Sourcegraph Cody Sourcegraph 基于代码库理解的AI助手,提供代码搜索、解释和生成功能 VS Code, JetBrains
插件 Aider Aider AI代码编辑助手,支持多文件编辑和代码重构 VS Code
插件 CodeBuddy 腾讯 由腾讯混元与DeepSeek双模型驱动,支持跨IDE协作,符合等保三级要求 VS Code, JetBrains
插件 Cursor Agent Cursor Cursor的VS Code插件版本,提供AI代码生成和编辑功能 VS Code
IDE Cursor Cursor团队 基于VS Code的AI升级版,深度集成LLM,提供上下文感知的代码生成和调试建议 独立应用
IDE Cline 开源社区 AI驱动的代码助手,理解整个代码库,规划复杂变更并执行多步骤任务 VS Code插件/独立版本
IDE Continue.dev Continue.dev 开源AI IDE,支持多种模型,提供完整的AI编程体验 独立应用
IDE Zed Zed Industries 高性能编辑器,内置AI功能,支持代码补全和编辑 独立应用
IDE Trae 字节跳动 AI原生IDE,支持中文描述生成项目结构和代码,内置GPT-4o模型 独立应用
IDE Codeium Chat Codeium Codeium的独立聊天界面,支持代码生成和问答 独立应用
IDE Windsurf Codeium AI驱动的集成开发环境,支持智能代码补全、实时错误检测、自动化调试和多语言支持 独立应用
命令行 Warp Warp AI增强的终端工具,提供命令建议和自动补全 独立应用
命令行 Aider CLI Aider 命令行AI代码编辑工具,支持Git集成和多文件编辑 终端
命令行 Cline CLI Cline Cline的命令行版本,支持终端中的AI代码助手功能 终端
命令行 GitHub Copilot CLI GitHub GitHub Copilot的命令行版本,支持终端中的代码生成 终端
命令行 Cursor CLI Cursor Cursor的命令行工具,支持终端中的AI代码操作 终端
命令行 Continue CLI Continue.dev Continue的命令行版本,提供终端中的AI编程功能 终端
命令行 CodeBuddy CLI 腾讯 CodeBuddy的命令行版本,支持终端中的代码生成和编辑 终端
命令行 Gemini CLI Google Google Gemini的命令行工具,支持代码生成和问答 终端
命令行 Codeium CLI Codeium Codeium的命令行版本,支持终端中的代码补全和生成 终端

工具分类说明

插件

  • 集成到现有IDE中,无需切换开发环境
  • 通常提供代码补全、代码生成、代码解释等功能
  • 适合希望增强现有IDE功能的开发者

IDE

  • 完整的开发环境,深度集成AI功能
  • 提供更丰富的AI交互体验和上下文理解
  • 适合希望获得完整AI编程体验的开发者

独立终端

  • 轻量级,适合终端工作流
  • 通常支持脚本化和自动化
  • 适合喜欢命令行操作和需要集成到自动化流程的开发者

主要工具简介

Cline

有免费模式,可选模型和响应速度比较受限
也支持购买的自定义模型
示意图

CodeBuddy

公司内部免费的推荐使用CodeBuddy, 可选各种先进模型包括Cluade, GPT, gemini等

Cursor

基于VS Code的AI升级版IDE,深度集成大型语言模型,提供上下文感知的代码生成、调试建议和自然语言重构功能。
小技巧:Ctrl+M 自动生成提交信息

Gemini CLI

Google Gemini的命令行工具,支持代码生成和问答功能。
添加系统环境变量


三种模式

Ask:聊天模式
Plan:先规划后执行,类似下面介绍的规范驱动开发
Agent: 代理,自动完成编码任务


AI 编码方法

在使用 AI 辅助编程时,有多种不同的方法来指导 AI 生成代码。理解这些方法的区别和适用场景,可以帮助你更高效地与 AI 协作。

Rules(规则驱动)

Rules 是一种通过明确的规则和约束来指导 AI 生成代码的方法。这种方法强调精确性和可预测性。

特点
明确性:通过具体的规则、约束和规范来指导 AI
可预测性:相同规则下,AI 生成的代码风格和行为相对一致
结构化:规则通常以列表、条件语句等形式组织

适用场景
– 需要严格遵循代码规范和最佳实践
– 团队协作,需要统一的代码风格
– 有明确的架构约束和设计模式要求
– 需要符合特定框架或库的约定

示例

规则:
- 使用 TypeScript,启用严格模式
- 所有函数必须有类型注解
- 使用 async/await 处理异步操作
- 错误处理使用 try-catch
- 函数名使用 camelCase,常量使用 UPPER_SNAKE_CASE

优势
– 生成的代码质量稳定,符合规范
– 便于团队协作和代码审查
– 减少代码风格不一致的问题

局限性
– 规则过多可能导致 AI 理解困难
– 灵活性相对较低,可能限制创造性
– 需要维护和更新规则文档

Vibe-coding(感觉驱动)

Vibe-coding 是一种通过描述代码的”感觉”、风格或整体印象来指导 AI 的方法,而不是使用严格的规则。

特点
描述性:通过自然语言描述期望的代码风格和感觉
灵活性:不依赖严格的规则,允许 AI 有更多发挥空间
直观性:更容易表达难以用规则描述的设计意图

适用场景
– 探索性编程和原型开发
– 需要快速迭代和尝试不同方案
– 代码风格要求不那么严格的项目
– 个人项目或小型项目

示例

"写一个简洁优雅的 React 组件,感觉要现代、轻量,用 hooks 风格,
代码要易读,不要过度工程化"

优势
– 表达方式更自然,易于沟通
– 允许 AI 有更多创造性
– 适合快速原型和探索

局限性
– 结果可能不够一致
– 难以精确控制代码细节
– 可能不适合大型团队项目

Spec-coding(规范驱动)

Spec-coding 是一种通过详细的规范(specifications)来指导 AI 生成代码的方法,介于 Rules 和 Vibe-coding 之间。

特点
详细性:提供完整的功能需求、接口定义、行为描述
结构化:使用结构化的方式描述需求(如用户故事、场景、测试用例)
完整性:不仅描述”做什么”,还描述”怎么做”和”为什么”

适用场景
– 复杂功能的实现
– 需要详细文档和测试的项目
– 遵循规范驱动开发(Spec-Driven Development)的项目
– 需要可追溯性和可维护性的项目

示例

需求:实现用户登录功能

规范:
- 输入:用户名和密码
- 验证:检查用户名格式(邮箱或手机号)
- 安全:密码使用 bcrypt 加密存储
- 响应:成功返回 JWT token,失败返回错误码
- 场景:
  - 场景1:有效凭证 → 返回 token
  - 场景2:无效凭证 → 返回 401
  - 场景3:用户不存在 → 返回 404

优势
– 生成的代码更符合需求
– 便于测试和验证
– 支持规范驱动的开发流程
– 可追溯性强

局限性
– 需要编写详细的规范,工作量较大
– 可能过于正式,不适合快速迭代
– 需要维护规范文档

方法选择建议

方法 适用场景 团队规模 项目阶段
Rules 需要严格规范、团队协作 中大型团队 生产环境
Vibe-coding 快速原型、探索性开发 个人/小团队 早期阶段
Spec-coding 复杂功能、需要文档化 中大型团队 设计/开发阶段

最佳实践
– 根据项目阶段和需求灵活选择方法
– 可以组合使用:用 Spec 定义功能,用 Rules 约束实现,用 Vibe 调整风格
– 在团队中建立共识,统一编码方法的使用标准

openspec 使用

// step1: install
npm install -g @fission-ai/openspec@latest

// step2: initialze projec
cd my-project
openspec init

// 按提示交互命令执行



实践分享

个人相册管理

核心功能:
1. 检查文件名称是否包括清晰的年月日信息,如果没有读取文件的信息,并重命名
2. 去重
3. 分类

codebuddy:详细的需求描述和执行步骤,基本实现了要求的功能,但有些实现细节不符合需求描述,修Bug花了不少时间
prompt
Cursor: 少量的prompt, 正确的实现了要求的功能

结论:模型和工具的选择非常重要,有时差距很大


结论

Rules + OpenSpec + MCP + SubAgents + agent skills

相关资源

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Index