ARTICLE · 1003807
什么是 AI 驱动开发?AI正在重新定义软件开发方式
什么是 AI 驱动开发?AI正在重新定义软件开发方式最近学习AI,从: 大语言模型、Prompt、RAG、Agent、MCP,一直到AI Workflow。 慢慢会发现一个趋势: 而对于软件行业来说,这种变化可能更加明显。 现在越来越多的开发人员已经开始使用AI: 写代码、生成测试用例、分析Bug、Review程序…… 于是,一个新的概念开始越来越多地出现: 也就是: AI驱动开发。 那么AI驱动开发,是不是就是: 我觉得远远不止。 今天继续用比较简单的方式,整理一下我的理解。
如果简单理解,可以先这样定义: 这里有一个很重要的词: 各个阶段。 因为现在很多人说到AI开发,第一反应还是: AI写代码。 比如让AI: 或者: 这些当然属于AI辅助开发。 但真正的AI驱动开发,希望进一步做到:
先看看一个比较典型的软件开发流程。 比如常见的V模型: 需求定义 ↓ 基本设计 ↓ 详细设计 ↓ 编码 ↓ 单元测试 ↓ 结合测试 ↓ 系统测试 ↓ 验收 整个过程中,人需要不断: 阅读文档、分析需求、编写设计、开发程序、编写测试用例、检查结果。 过去: 工具只是辅助我们完成工作。 而生成式AI出现之后,这种关系正在开始发生变化。
先从最上游开始。 客户可能给我们几十页甚至几百页的需求资料。 传统方式下,SE需要: 阅读资料 → 理解业务 → 提取需求 → 找出问题 → 整理确认事项 现在AI可以帮助: 总结客户需求 提取功能需求 识别非功能需求 发现需求之间的矛盾 寻找可能遗漏的场景 自动生成客户确认问题 例如: AI就可以成为需求分析阶段的: 第一个Review者。 这时候AI已经不只是在“写代码”。
需求确定之后,需要进行系统设计。 比如: 系统架构、数据库设计、API设计、画面设计、异常处理…… AI可以根据需求帮助: 生成系统设计草案 设计API接口 生成数据库Schema 检查设计遗漏 分析系统风险 甚至可以: 当然,最终设计仍然需要架构师和SE判断。 但是过去: 从0开始写。 未来可能越来越多地变成: 工作方式已经开始发生变化。
这也是大家最熟悉的部分。 现在AI已经可以: 生成代码 补全代码 解释代码 重构代码 生成SQL 分析Bug 转换编程语言 过去程序员经常需要: 现在越来越多的场景变成: 所以程序员的工作重点也在发生变化。 过去更多是: “怎么把代码写出来?” 未来可能越来越多地变成:
测试其实是一个非常适合AI的场景。 因为很多测试工作都需要: 理解需求 → 找测试场景 → 设计测试用例 → 准备数据 → 执行 → 分析结果 AI可以根据需求和设计书自动生成: 正常测试 异常测试 边界值测试 组合测试 例如: 输入: AI可以自动考虑: 7位怎么办? 8位呢? 20位呢? 21位呢? 空值呢? 特殊字符呢? 也就是说:
过去Code Review通常需要经验丰富的工程师花大量时间阅读代码。 AI可以先进行第一轮检查: 有没有明显Bug? 有没有重复代码? 有没有安全风险? 是否符合编码规范? 有没有性能问题? 然后再由人重点Review: 架构是否合理? 业务逻辑是否正确? 有没有更深层次的风险? 这其实是一种很有意思的人机协作模式:
我觉得这是企业开发中非常值得关注的场景。 很多企业真正头疼的问题并不是: 怎么开发一个全新的系统。 而是: 代码可能有: 几十万行,甚至几百万行。 文档可能不完整。 开发人员已经离职。 系统又不能停止运行。 这时候AI可以帮助: 读取旧代码 ↓ 解释业务逻辑 ↓ 分析模块关系 ↓ 补充缺失文档 ↓ 生成测试 ↓ 辅助重构 ↓ 逐步迁移到新的技术架构 所以未来AI驱动开发一个非常大的价值,可能来自:
我觉得可以做一个简单区分。 AI辅助开发 更像: 例如: 程序员写代码时使用AI。 测试人员生成测试用例时使用AI。 每个人自己使用。 AI是: 个人生产力工具。
AI驱动开发 更进一步。 它考虑的是: 例如: 需求完成之后: AI自动生成设计草案。 ↓ 设计确认之后: AI生成代码。 ↓ 代码提交之后: AI自动Review。 ↓ 自动生成测试。 ↓ 执行CI/CD。 ↓ 发现问题之后: AI分析原因并生成修复建议。 这时候: 这和上一篇讲的: AI Workflow 其实是完全连起来的。
讲到这里,一个绕不开的问题就是: 我觉得与其讨论“程序员会不会消失”,不如观察: 程序员的工作内容正在发生什么变化。 过去一个优秀程序员可能需要: 代码写得快。 未来可能更加需要: 理解业务 设计系统 定义需求 判断AI输出 发现风险 设计验证方法 利用AI完成任务 也就是说: AI可以很快生成1000行代码。 但是: 这1000行代码是不是我们真正需要的? 架构是不是合理? 业务逻辑是不是正确? 上线之后会不会出问题? 这些仍然需要人判断。
特别是在企业系统开发中,我觉得有一类人的价值可能会进一步提高: 既懂业务,又懂技术,还会使用AI的人。 因为AI可以帮助: 写代码、写设计书、生成测试。 但AI并不知道: 客户真正想解决什么问题。 为什么这个业务流程是这样设计的。 哪些需求不能改变。 哪些风险客户最在意。 所以未来可能越来越需要这样的工程师: 他们不一定自己完成所有开发工作。 而是: 定义问题 → 设计方案 → 指挥AI → Review结果 → 推动落地 这可能也是未来SE角色非常值得关注的一个变化。
到了AI驱动开发,我们前面学习的东西基本都可以用上了。 LLM 帮助: 理解需求、生成设计、生成代码。 ↓ Prompt Engineering 告诉AI: 应该按照什么要求完成开发任务。 ↓ RAG 让AI获取: 公司开发规范、项目文档、历史代码和业务知识。 ↓ MCP 让AI连接: GitHub、数据库、文件、开发工具和企业系统。 ↓ AI Agent 让AI: 自主完成多步骤开发任务。 ↓ AI Workflow 把这些能力: 嵌入整个软件工程流程。 最后形成: 所以AI驱动开发,并不是突然出现的一个独立概念。 它其实是: 前面这些AI能力在软件开发领域的一次综合应用。
如果让我用一句话理解AI驱动开发,我会这样说: 过去的软件开发是: 人完成工作,工具提高效率。 未来可能逐渐变成: 人定义目标,AI完成大量执行,人负责判断和决策。 软件工程师真正需要提升的,也许不只是: 写代码的速度。 而是: 理解业务的能力、定义问题的能力、系统设计能力,以及驾驭AI的能力。 AI当然还不能替我们完成整个软件工程。 但它已经开始进入: 需求、设计、编码、测试、Review和运维。 所以我觉得: 从“人写、机器执行”, 逐渐走向: “人定义、AI生成、人验证”。 这可能才是: AI驱动开发真正值得关注的地方。 继续学习,继续实践,继续记录我的AI学习笔记。
AI正在从一个“聊天工具”,逐渐进入真正的工作流程。
AI-Driven Development
“让AI帮我们写代码”?
01 什么是AI驱动开发?
AI驱动开发,就是把AI能力融入软件开发的各个阶段,让AI参与需求、设计、编码、测试、Review和维护,从而改变传统的软件开发方式。
帮我写一个Python程序。
帮我实现一个登录页面。
让AI进入整个软件工程流程。
02 传统的软件开发是什么样的?
软件工程师是整个过程的主要执行者。
03 AI可以进入需求阶段
请分析以下需求规格书,找出需求遗漏、逻辑矛盾以及需要向客户确认的事项。
04 AI可以辅助设计
根据需求文档生成第一版设计书。
AI生成初稿 → 人Review → AI修改 → 人确认
05 编码可能是变化最明显的地方
搜索Google → 找Stack Overflow → 阅读文档 → 写代码 → Debug
描述需求 → AI生成 → 人检查 → AI修改 → 测试
“怎么判断AI写的代码是不是正确?”
06 AI也可以进入测试阶段
用户密码长度必须为8~20位。
AI可以帮助我们系统性地寻找人可能遗漏的测试场景。
07 AI可以做Code Review
AI负责广度,人负责深度。
08 AI甚至可以帮助理解旧系统
几十年前的旧系统怎么办?
Legacy Modernization(旧系统现代化)。
09 AI驱动开发和“AI辅助开发”有什么区别?
开发人员在某个环节使用AI。
怎么重新设计整个软件开发流程。
AI已经成为开发流程的一部分。
10 AI会不会取代程序员?
程序员会不会被AI取代?
价值正在从“写代码”逐渐向“定义问题和判断结果”移动。
11 SE的价值反而可能更加重要
懂业务 + 懂系统 + 懂AI
12 把前面的AI知识全部串起来
AI-Driven Development
写在最后
AI驱动开发,不是简单地“让AI帮我们写代码”,而是重新思考AI时代的软件应该怎么开发。
AI对软件开发最大的影响,也许不是“代码写得更快了”,而是整个开发方式正在发生变化。