ByteFisher AI 编程实战(一):AI编程是什么——编程范式的变革

想象这样一个场景:你收到一个需求——给现有的系统添加一个批量导入 Excel 的功能。放在两年前,流程是这样的:打开搜索引擎搜”c# 读取 excel 文件”,翻到一篇博客,跟着配置 NuGet 包,写读取逻辑、处理边界情况、写单元测试……运气好的话一上午搞定。

现在呢?你在 Cursor 中选中相关代码文件,输入 Prompt:”为项目添加批量导入 Excel 功能,使用 EPPlus,支持 xlsx 格式,返回导入结果统计。”不到一分钟,AI 生成了完整的 Service、Controller 和数据验证逻辑。你花十分钟审查代码、调整命名、补充一条边界测试——半小时不到,功能完成。

这不是科幻,这是正在发生的编程范式变革。编程的核心正在从”如何实现”转向”实现什么”。

一、传统编程 vs AI 编程

1.1 传统编程的本质

传统编程的完整链路:需求分析 → 方案设计 → 编码实现 → 测试验证 → 部署上线。每个环节都依赖程序员个人的知识积累和经验判断。

编码阶段,你需要熟悉语言语法、框架 API、数据结构、设计模式。就拿一个 Excel 导入来说,你要知道:

  • 选择哪个 NuGet 包(EPPlus、NPOI、ClosedXML 各有什么优劣)
  • 如何配置依赖注入和服务注册
  • 日期格式、空值处理、重复行去重
  • 事务管理和异常回滚

人是唯一的创造者,也是唯一的瓶颈。

1.2 AI 编程的本质

AI 编程将”编码实现”这一步大幅压缩。你仍然是架构师和决策者,但具体怎么写代码——AI 代劳了。

新链路变成:需求分析 → 方案设计 → [AI 编码] → 审查验证 → 部署上线。

核心特征:人从”怎么写”变成”要什么”。你的工作重心转向需求定义、方案评审和质量把控。这不是程序员变懒了,而是”编程”这个概念本身在升级——从手工作坊走向协作生产。

1.3 对比矩阵

维度 传统编程 AI 编程
产出方式 手动逐行编写 对话式生成
效率瓶颈 打字速度 + 记忆力 表达能力 + 判断力
知识要求 语法、API、框架必须熟悉 知道”有这个东西”即可,细节 AI 生成
调试方式 逐行排查 + 断点 描述现象,AI 定位
入门门槛 高(需系统学习工具链) 低(自然语言驱动)
关键能力 逻辑思维 + 算法功底 提问能力 + 审查能力
工作重心 写代码 审代码、做决策
可扩展性 线性(一个人写多少算多少) 杠杆效应(描述清楚就能获得大量产出)

AI 编程不是替代传统编程,而是叠加在传统能力之上的新范式。一个完全不懂编程的人没办法用好 AI 编程——你仍然需要理解代码的基本逻辑才能审查 AI 的输出。

1.4 同一功能两种实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 传统方式:手动逐行写
// 1. 安装 EPPlus
// 2. 创建 ExcelReader 类
// 3. 逐行读取 Sheet
// 4. 验证每行数据
// 5. 批量插入数据库
// 6. 返回导入结果
// 7. 写异常处理
// 8. 写单元测试
// 总计:约 150 行代码,耗时 1-2 小时

// AI 方式:描述清楚需求
// Prompt 写:
// "用 C# + EPPlus 读取 Users.xlsx,
// 数据验证后批量插入 SQL Server,
// 返回成功/失败行数统计"
// 30 秒生成→你审查修改→10 分钟确认
// 总计:审查 + 微调,耗时约 30 分钟

效率提升不是 2 倍 3 倍,在模板代码场景下是 10 倍以上的差距

二、AI 编程的三个层次

AI 编程不是单一能力,而是由浅入深的三个层次。

2.1 代码补全(Code Completion)

最基础也最高频的层次。你写一个函数名,AI 自动补全函数体;你写一个注释,AI 生成对应代码;你写一个 if,AI 补全条件分支。

1
2
3
4
5
6
7
8
9
10
11
12
13
// 你输入:
// 计算斐波那契数列的第 n 项(使用递归 + 缓存)

// AI 自动补全:
public static long Fibonacci(int n, Dictionary<int, long> cache = null)
{
cache ??= new Dictionary<int, long>();
if (cache.ContainsKey(n)) return cache[n];
if (n <= 1) return n;
return cache[n] = Fibonacci(n - 1, cache) + Fibonacci(n - 2, cache);
}

// 你甚至不需要按 Tab——AI 在你打字时就给出了建议

典型工具:GitHub Copilot、Codeium、Tabnine、Cursor Tab

优势在于无感——不需要切换窗口,AI 在你日常编码中自然嵌入。微软的统计显示,使用 Copilot 后开发者在编码效率上平均提升 30%-55%,且对重复性模板代码效果最显著。

2.2 对话式生成(Chat-based Generation)

在独立对话窗口中描述需求,AI 一次性生成完整的代码块或文件。你可以追问、要求修改、让 AI 重构。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
你:
"写一个 C# 方法,实现:
1. 传入 List<int>
2. 去重
3. 升序排序
4. 返回新 List<int>"

AI:
public List<int> ProcessNumbers(List<int> numbers)
{
return numbers
.Distinct()
.OrderBy(n => n)
.ToList();
}
---
你接着问:
"改成支持泛型,可指定排序字段"

AI:
public List<T> ProcessItems<T>(List<T> items, Func<T, object> keySelector)
{
return items
.Distinct()
.OrderBy(keySelector)
.ToList();
}

典型工具:ChatGPT、Claude、DeepSeek Chat、Kimi、GitHub Copilot Chat

关键技巧:一次只描述一个完整任务。不要把三个不相关的需求塞进同一个 Prompt,AI 会捡了芝麻丢了西瓜。

2.3 全流程协作(Full Workflow Collaboration)

AI 参与到整个开发流程:需求分析 → 架构方案 → 代码生成 → 测试用例 → Bug 修复 → 代码审查。这不是单个文件的生成,而是项目级别的协作。

1
2
3
4
5
6
7
8
9
10
11
典型 Cursor 工作流:

1. 打开 Cursor,按 Cmd+I 打开 Composer
2. 描述新功能:"在用户模块中增加
一个管理员审批流程,包括审批表、
审批接口、邮件通知"
3. AI 分析现有代码结构,给出方案
4. 确认方案后 AI 生成完整的文件变更
5. 运行 dotnet test,把报错贴给 AI
6. AI 定位问题并修复
7. AI 检查代码质量,提出重构建议

典型工具:Cursor、Claude Code、OpenCode、Windsurf、Aider

这个层次改变的不仅是写代码的方式,而是开发流程本身。你变成了项目经理 + 架构师,AI 是主力开发者。对复杂项目来说,这是最具生产力的使用方式。

2.4 如何选择适合你的层次

你的情况 推荐层次 推荐工具
初学者、学生 代码补全 + 对话式 Copilot + ChatGPT
日常 CRUD 开发 对话式主导,补全辅助 Cursor
复杂项目、架构设计 全流程协作 Cursor / Claude Code
快速原型验证 全流程协作 Claude Code / OpenCode
不想换 IDE 代码补全 + 对话式 VS Code + Copilot

三、能力边界

了解 AI 能做什么、不能做什么,比了解它的能力更重要。

3.1 擅长的领域

场景 表现 说明
模板代码生成 ★★★★★ CRUD、配置、DTO、Mapper 等模式固定
跨语言翻译 ★★★★★ Python → C#、Java → TypeScript 表现稳定
常见算法 ★★★★☆ 排序、搜索、树、图结构训练数据充足
单元测试 ★★★★☆ 边界条件覆盖、Mock 设置都很擅长
正则表达式 ★★★★★ 语法固定,训练数据极其丰富
Bug 修复(常见错误) ★★★★☆ 空指针、类型错误、SQL 语法等快速定位
代码重构(机械) ★★★★★ 重命名、提取方法、拆分模块
文档和注释 ★★★★☆ 生成 API 文档、XML 注释效率极高

3.2 不擅长的领域

场景 表现 原因
深度架构设计 ★★☆☆☆ 没有全局视野和长期演进意识
隐式业务逻辑 ★★☆☆☆ 训练数据里没有你团队的约定
创新性方案 ★★★☆☆ 在已知模式内表现好,真正创新不足
安全敏感代码 ★★☆☆☆ 可能引入不安全的依赖或写法
超长上下文推理 ★★★☆☆ 窗口过大时会出现”遗忘”
复杂业务代码审查 ★★☆☆☆ 容易遗漏深层逻辑 Bug

3.3 幻觉——最需要警惕的风险

AI 编程中最常见的幻觉表现:生成看起来完全合理但实际上不存在的 API、方法、库或参数。

1
2
3
4
5
6
7
8
9
10
11
// AI 可能生成这样的代码:
var aiResult = await AiService.AnalyzeSchema(input);
// AiService 和 AnalyzeSchema 在项目里根本不存在
// 但命名风格、调用方式都符合项目规范
// 编译前几乎不可能发现

// 更隐蔽的例子:
services.AddHangfire(config =>
config.UseRecommendedStorage());
// UseRecommendedStorage 不存在
// 但看起来太像正规 API 了

AI 编程第一原则:永远不要相信 AI 生成的代码,除非你完全理解它在做什么。

3.4 安全协作的五条规则

  1. 逐段审查,不批量接受:AI 生成 10 个文件?一个一个审,不要全部 Accept
  2. 看不懂就问 AI:如果某段代码看不懂,直接让 AI 解释——这也是学习过程
  3. 限制作业范围:一个 Prompt 只做一个任务,任务越小输出越可靠
  4. 善用版本控制:AI 改坏了?git diff 看一下改了啥,git checkout 还原
  5. 核心逻辑自己写:加密、支付、权限校验——这些必须自己掌控

四、如何开始 AI 编程之路

如果你还没用过 AI 编程,这是一条清晰的入门路线。

4.1 第一步:安装工具

最无门槛的方式:给 VS Code 装上 GitHub Copilot(有免费试用)。不需要配置,不需要学习新快捷键,写代码时自然就会感受到变化——以前要完整敲出来的代码,现在按 Tab 就出来了。

4.2 第二步:学会提问

AI 编程的核心技能就是提问。同一个需求,不同问法得到的代码质量天差地别。

1
2
3
4
5
6
7
8
9
10
11
12
差 Prompt:
"帮我写个处理数据的东西"

好 Prompt:
"用 C# 写一个方法,读取 JSON 文件中的用户列表,
过滤出年龄大于 18 岁的用户,按姓名排序后返回"

更好的 Prompt:
"用 C# 写一个方法,读取 JSON 文件中的用户列表,
过滤出年龄大于 18 岁且状态为 Active 的用户,
按姓名升序排序,返回 List<UserDto>。
需要考虑文件不存在、JSON 格式错误的异常处理"

好 Prompt 的三要素:技术栈 + 输入输出描述 + 边界条件。描述越清晰,AI 的输出越接近你想要的。

4.3 第三步:建立审查习惯

第一次用 AI 编程的人容易犯两个错误:

  1. 全盘接受——AI 生成的代码直接用到生产
  2. 不求甚解——看不懂也跳过,觉得”反正能跑”

正确做法:把 AI 当成一个能力很强但偶尔犯错的实习生。它的产出必须经过你的审查才算完成。

4.4 学习路径

阶段 目标 预计时间
入门期 装好工具,体验代码补全 1-3 天
适应期 用对话式生成完成独立小功能 1-2 周
熟练期 用全流程协作完成模块开发 1-2 个月
精通期 建立自己的 Prompt 模板和工作流 持续演进

编程不会因为 AI 的普及而变得不重要。恰恰相反,越能用好 AI 的人,编程能力越强。 因为你把精力从重复劳动中解放出来,专注于更有价值的思考。

五、工具生态速览与选型指南

5.1 主流工具对比

工具 类型 一句话定位 适合场景
GitHub Copilot IDE 插件 代码补全标杆 日常编码加速,零侵入
Cursor AI-First IDE 最成熟的 AI 原生编辑器 全流程日常开发
Claude Code 终端工具 终端里的 AI 编程 后端开发、大项目重构
OpenCode AI 代理 自动规划、执行、调试 复杂多步骤任务
ChatGPT / Claude 通用对话 灵活但需手动粘贴代码 零散需求、参考代码、学习
Windsurf AI-First IDE Cursor 主要竞品 全流程日常开发

5.2 选型建议

  • 刚开始:GitHub Copilot(零侵入,安装即用,最小切换成本)
  • 日常开发:Cursor(一体化解方,无需离开编辑器)
  • 后端 / CLI 工作:Claude Code(终端内高效协作,适合 SSH 远程开发场景)
  • 多步骤复杂任务:OpenCode(AI Agent 模式,自动执行多步操作)

没有哪个工具是万能的。大多数 AI 编程重度用户同时使用 2-3 个工具:IDE 里用 Cursor 做日常开发 + Claude Code 做大文件重构 + ChatGPT 做技术调研和方案讨论。

六、AI 时代程序员的新能力模型

传统能力 新能力 为什么
记忆 API 和语法 准确描述需求和意图 AI 知道的 API 比你多,但需要你告诉它要什么
手动 Debug 分析 AI 生成的代码 AI 写的 Bug 还是需要你来发现
独立编码 将大任务拆成小步骤 AI 在小而明确的任务上表现最稳定
代码审查 审查他人(AI)的代码 审查比手写更难,但这是你的新核心价值
技术深度 技术广度 + 判断力 AI 覆盖广度,你负责做选择和决策

有一条永远不会变:代码质量最终取决于你。

AI 编程不会让优秀程序员变得平庸,但会让平庸程序员变得更高效——前提是你愿意学习新的工作方式,锻炼新的核心能力。

本章小结

  • AI 编程是一次编程范式变革:人从”如何实现”转向”实现什么”
  • AI 编程的三个层次:代码补全(无感提效)→ 对话式生成(独立任务)→ 全流程协作(项目级 AI)
  • AI 不是万能的:模板代码和常见算法表现优异,架构设计和业务逻辑需要你把控
  • 幻觉是最需要警惕的风险——永远审查 AI 生成的代码
  • 入门路线:装工具 → 学会提问 → 建立审查习惯 → 持续迭代
  • 好 Prompt 的三要素:技术栈 + 输入输出描述 + 边界条件
  • 没有唯一的 AI 编程工具,根据场景选择 2-3 个组合使用
  • AI 时代程序员的核心能力:提问 + 审查 + 判断力

下一篇我们从底层原理入手,用最通俗的方式拆解大语言模型的工作机制——理解它,才能用好它。

ByteFisher
分享编程技术 · 记录钓鱼乐趣
扫码关注
▸ 扫码关注 ◂
ByteFisher AI编程实战教程 系列
第 1/10 篇
分享: