1. 辅助编码提示(Code Completion and Suggestions)

AI编码助手能实时提供代码补全、语法建议和简单优化。例如,在IDE中输入几行代码,AI可预测后续逻辑,处理常见模式如循环、API调用或数据处理。AI可自动化重复任务如代码生成和bug检测。生产力提升可达20-30%,尤其在初级开发者中缩小技能差距。这方面推荐的如cursor、vscode和idea里的GitHub Copilot。

存在问题

  • 准确性和相关性不足:AI建议可能不匹配项目上下文、命名约定或特定框架,导致泛化代码不适用;对边缘案例或抽象概念理解有限。
  • 代码质量不一致:语法建议准确,但优化可能忽略可维护性或风格一致性;过度依赖AI导致开发者技能退化

最开始两个月我兴奋地用它写CRUD接口。真实情况是:生成的Spring Boot RESTful API不是忘了加@Transactional,就是忽略字段校验规则。最夸张的是有次尝试让它生成OAuth2鉴权代码,结果直接用了硬编码token验证。

如何解决

  • 提供详细提示工程(如添加注释或规格描述)以增强上下文。
  • 结合人工审阅和自动化测试(如单元测试)验证建议。
  • AI生成初稿,人或AI+人负责review,并且使用代码质量工具(如ESLint集成)强制标准。我们要把AI作为”配对编程”伙伴,而不是完全让它替我们写代码,而不做任何review。

▲ 编码前先写好Swagger接口文档注释(schema要细化到参数级)
▲ 数据库操作强制只让它生成SQL模板(然后再自行替换为MyBatis XML)
▲ 对服务层逻辑保持警惕——异步线程池的世代隔离、分布式事务的注解逃逸这些问题,它基本处理不好

  • 所以说辅助编码提示主要解决的是低端的大量重复性的开发,让我们不必关注细节语法,简单循环,精力主要投入复杂业务逻辑上
flowchart LR A[AI生成初稿] --> B{人工审查} B -->|通过| C[集成测试] B -->|驳回| D[优化提示词] D --> A

2. 自动化编码(Automated Code Generation)

AI可自动化生成完整函数或模块,尤其在标准任务如API集成、数据验证或简单算法。目前也可以从需求描述生成代码框架,但效果因任务复杂度而异。当一个团队想要交付一个功能完善、可追溯、可协作的大型项目时,效果不理想。这方面的工具有claude code、gemini cli、codex、vscode和idea的augment等

存在问题

  • 上下文容易丢失:AI 一次只能处理有限上下文,复杂项目需要反复补充说明
  • 任务容易阻塞:传统开发往往是串行执行,一个环节没完成,后续都得等
  • 代码质量不稳定:AI 生成的代码有时过于随意,缺乏规范和可追溯性
  • 协作成本高:AI 和人类开发者之间如何切换和同步进展

▲ AI自动生成Kafka消费者代码,在Kafka流处理场景中,生成的Consumer代码开着enable.auto.commit却手动提交offset,中间件知识错位引发数据丢失
▲ 用AI生成数据权限增删改,为了提升查询效率,数据权限放在了redis缓存中,更新DB后删除缓存的操作被AI建议放在事务内,结果事务回滚时缓存已失效,产生长时间数据不一致
▲ 油改电数据推送程序完成过程中的坑和体会

如何解决

  • 采用迭代提示,提供详细规格和示例
  • 生成后人工及时反馈循环,如在生成后review并立即测试
  • Spec-Driven规范驱动开发
  • Agentic Agile Driven敏捷AI驱动开发

Spec Kit 开源项目
规格驱动开发(Spec-Driven Development): 几十年来,代码一直处于软件开发中的主导地位——规范只是我们在开始真正的编码工作后构建和丢弃的脚手架。驱动规范的开发改变了这一点:规范变得可执行,直接生成可工作的实现,而不仅仅是指导它们。过去是“代码为王”,现在是“代码服务规格”,规格足够精确时,它可以直接生成计划与实现,减少意图与落地之间的鸿沟。维护软件的主战场也随之上移:迭代规格,而不是到处打补丁改实现。

Spec Kit + Specify CLI + 模板/脚本 你不用“玄学提示词”,而是用一套固定的 /constitution → /specify → /clarify → /plan → /tasks → /analyze → /implement 的流水线,把需求→计划→任务→实现→校验串起来,尽量自动化、结构化地完成。 从确立团队原则(/constitution),到“说清楚要做什么”(/specify),到“把不清楚的先问清”(/clarify),再到“定技术方案”(/plan)、“自动拆任务”(/tasks)、“一致性分析”(/analyze)、“落地实现”(/implement

  1. 订“铁律:先用 /constitution 写定团队的工程原则(例如“简单优先、反抽象、集成优先、测试先行”),这会成为之后每个计划文档的检查 Gate(不通过就打回)。
  2. 说清楚做什么:用 /specify 把用户价值、场景、边界写清——不写技术,只写 WHAT/WHY(模板会校验)。
  3. 把不清楚的问清楚: /clarify 会生成结构化问题清单并把回答入档,减少后期“猜”。
  4. 定技术方案:用 /plan 把栈、结构、合约、数据模型、Quickstart 测试场景都生成出来,并通过 Gate 校验一次复杂度与原则一致性。
  5. 自动拆任务/tasks 读取 plan 与 contracts/data-model,生成带并行标记的任务清单(先测后码)。
  6. 一致性检查/analyze 在实现前再跑一遍“对账单”,发现冲突先改文档不是先改码。
  7. 开始实现/implement 严格按任务、按 TDD 顺序推进,过程中也会持续回写状态文档,便于复盘与协作。

使用

  • 安装
    uv tool install specify-cli –from git+https://github.com/github/spec-kit.git
  • 初始化项目
    specify init --ai claude
  • 验证环境
    specify check
  • 进入项目
    cd PROJECT_NAME
  • 按步骤执行开发(可以使用claude code)
    /constitution → /specify → /clarify → /plan → /tasks → /analyze → /implement

BMad Method 多智能体协作框架

  • 双阶段AI协作创新
    阶段一:智能规划(Web UI)
    - 分析师代理:市场研究、竞品分析
    - 产品经理代理:将项目想法转化为完整的PRD
    阶段二:精准开发(IDE)
    - 开发者代理:实现功能,需完整上下文支持
    - QA代理:执行代码审查与质量把控
  • 上下文工程技术
    通过精心设计的提示工程,确保每个AI代理都:
    - 拥有完整的项目上下文
    - 理解自己的角色和职责
    - 能够生成高质量、一致的输出
flowchart TB A[项目想法] --> B[分析师:市场调研] B --> C[PM:创建PRD] C --> D[架构师:技术设计] D --> E[切换到IDE] E --> F[SM:分解故事] F --> G[Dev:实现代码] G --> H[QA:质量保证]

使用

  • 安装
    npx bmad-method install
  • 运行
    claude
  • 使用分析师代理进行市场调研(可选)
    /analyst
  • 使用产品经理代理创建PRD
    /pm
  • 使用UX专家创建前端规范
    /ux-expert
  • 使用架构师设计技术框架
    /architect
  • 文档分片
    /po
    *shard-doc docs/prd.md prd
    *shard-doc docs/architecture.md architecture
  • Scrum Master创建下一个故事
    /sm
    *create
  • 开发者实施故事
    /dev
  • QA代理审查代码 /qa

3. 总结归纳

实际使用 AI 进行复杂业务逻辑编程后发现,生成代码的采纳率并不高,尤其在业务场景中,AI生成的代码往往不符合实际需求,远不如简单脚本或算法题的表现。即使是 IDE 中的代码补全、SQL提示,除了注释生成、简单循环等明确场景外,实际采纳率也相对偏低。 造成采纳率低的问题,很多时候是因为我们对 AI 的期望过高。我们常常直接给 AI 一个模糊的需求描述:”实现 xxx”,然后期望它能独立完成整个需求的开发工作,但结果往往是生成的代码不符合实际业务需求。 比如我们仅仅对AI说:实现一个用户登录功能的需求。AI框框一顿执行,生成了个看似可用的登录功能,然而下面的细节并没有说明:

  • 需要支持哪种登录方式?账号密码?第三方授权?
  • 需要实现什么级别的安全验证?
  • 登录后的会话管理如何处理?
  • 失败重试和账号锁定策略是什么? 假设把AI换位成我们自己,如果产品或运营提了这样的需求过来,我们会要求明确需求细节,让他们把PRD写清楚一点,更何况AI还没有我们大脑里的上下文(如业务术语、技术约定等)。

传统软件开发的标准流程

image

AI编程的现状问题流程

image

问题汇总

graph TD A[用户提出需求帮我实现用户登录功能] --> B[信息不对称
AI缺少业务上下
文和技术规范] A --> C[任务粒度过大
期望一次完成
复杂功能] A --> D[反馈循环缺失
缺少质量
验证机制] A --> E[角色边界模糊
AI身兼多职
效果差] B --> F[最终结果代码采纳率
不高开发效率低下] C --> F D --> F E --> F F -->|需要| G[系统性解决方案建立规范化协作流程]

解决思路

flowchart TD %% 核心问题区域 subgraph 核心问题分析 direction TB core_problems["信息不对称
AI缺少业务上下
文和技术规范"] task_granularity["任务粒度过大
期望一次完成
复杂功能"] feedback_loop["反馈循环缺失
缺少质量
验证机制"] role_boundary["角色边界模糊
AI身兼多职
效果差"] end %% 对应解决方案区域 subgraph 对应解决方案 direction TB doc_system["规范化文档体系
分层上下文管理
模板化"] issue_management["Issue管理规范
任务拆解
渐进式开发"] tdd_integration["TDD集成模式
Git提交审核
+测试驱动"] multi_agent["多智能体协作
SubAgent
专业化分工"] end %% 连接线(在核心问题与解决方案之间统一添加标注) core_problems -->|直接解决| doc_system task_granularity -->|直接解决| issue_management feedback_loop -->|直接解决| tdd_integration role_boundary -->|直接解决| multi_agent

4. Claude Code使用心得

  • 核心架构
    大模型 + 工具 + memory
  • 可以用它来干什么
    1. 快速熟悉代码库 生成流程图 技术栈 代码架构和功能
    2. 智能代理处理复杂编程任务 计划模式 管理项目记忆 与版本控制集成 调用mcp工具(playwright)优化图形界面
    3. 代码测试、调试 让AI生成某个功能的测试用例,后续任何调整,都在提示词中说明更新相应的测试用例,保证测试用例实时更新
    4. 代码重构
      • 方案确认:编写重构md文件,说明重构的文件/功能 说明现在的表现和期望达到的目标 任务复杂时,给一个示例操作流程 说清楚需求 加一些说明(例如测试用例,自动测试重构结果),确保方向正确 使用两个并行子代理实现两种不同方案,互相pk,选出最终方案
      • 选取推荐的方案,开启计划模式,确保方案全面,确认需要改动的代码位置正确,确保测试用例正确执行
  • 注意事项
    关键是提供更多的上下文,保证AI的生成更符合预期 提示词工程的核心是精准沟通​。需要清晰交代任务背景、期望结果和工作方式 通过系统性训练,你会逐渐培养出”AI思维”,知道如何有效引导AI产生最佳输出
  • 技巧
    • CLAUDE.md 追加一条用户消息,是附加到默认 system prompt 之后
    • Output styles 替换/关闭默认工程化 system prompt 的部分
    • 自定义命令 可以提供固定模板,不用每次输入提示词都增加相同的内容,适用于多任务并行开发
    • Sub Agents(子代理) Sub Agents本质上是预配置的专业AI助手,它们能够被Claude Code主系统委托处理特定类型的任务。每个Sub Agent都拥有独立的上下文窗口、定制化的系统提示词以及特定的工具访问权限。这种设计使得每个Sub Agent都能专注于自己的专业领域,如代码审查、调试或数据分析等。当Claude Code遇到匹配某个Sub Agent专业领域的任务时,会自动将任务委托给相应的专业Sub Agent处理,从而获得更精更专业的结果
    • MCP(Model Context Protocol,模型上下文协议) 为大型语言模型(如 Claude)提供了一种标准化的方式来连接和使用外部工具、数据源和服务
    • Hook 一项强大的自动化功能,它允许你在其工作流程的特定节点自动执行自定义脚本或命令。你可以将它理解为一个<智能的自动化管家>:你预先设定好规则(比如“每次保存代码后”),然后指定要执行的动作(比如“自动格式化代码”),Claude Code 就会在对应的时机自动触发这些动作,将依赖模型“记忆”的概率性操作,转变为确定性的自动化规则
    • Claude Code Plugin 将自定义配置模块化,让开发者能像搭乐高一样,通过一行命令轻松安装、共享和组合功能,显著提升开发效率和团队协作的标准化程度 支持四种核心组件:自定义命令;Sub Agents;MCP;Hook钩子
    • 并行开发(同时添加多个功能) 创建.trees文件夹,在里面创建多个git工作树(保证并行开发的功能,在修改相同文件时不被覆盖,最终可以进行合并) 在多个工作树上开启claude终端进行并行开发 例如可以同时进行:功能开发、单元测试开发、开发流程添加代码质量工具 在主分支中把.trees文件夹中所有工作树都合并进来 删除不用的工作树并将合并的代码推送到git