Skip to content

Latest commit

 

History

History
138 lines (98 loc) · 6.29 KB

File metadata and controls

138 lines (98 loc) · 6.29 KB

7.5 自主编码实践与案例

Agentic Coding (代理式编程) 与传统的 Code Completion (代码补全) 最大的区别在于:Agent 拥有目标感和行动力。它不是在等你敲下一个字符,而是主动去解决一个问题。

本节将展示三个不同复杂度的实战案例,带领体验 Agentic Coding 的强大。

7.5.1 案例一:全栈功能即刻实现

任务:在一个现有的 Todo List 应用(React + Node.js)中,新增一个“任务优先级”功能。

Prompt:

“请为当前应用添加任务优先级功能。需要前端支持选择高/中/低优先级(用颜色区分),后端数据库添加字段,API 支持读写该字段。”

Claude Agent 执行流:

  1. Reconnaissance (侦察):
    • 读取 package.json 确认技术栈。
    • 读取 schema.prisma (假设用 Prisma) 了解数据库结构。
    • 读取 App.tsx 了解前端组件结构。
  2. Backend Changes:
    • 修改 schema.prisma,添加 priority Enum.
    • 运行数据库迁移命令 npx prisma migrate dev.
    • 更新后端 Controller 处理新字段。
  3. Frontend Changes:
    • 修改 TodoItem 组件,根据优先级渲染不同的 Badge 颜色 (Red/Yellow/Green)。
    • 修改 TodoForm 组件,添加下拉选择框。
  4. Verification:
    • 运行 npm test,发现旧测试报错(因为缺少 priority 字段)。
    • 自动修复测试数据。
    • 再次运行测试,通过。

开发者工作: 审查 Diff,点击 Merge。耗时从 2 小时缩短到 10 分钟。

7.5.2 案例二:遗留代码的大规模重构

任务:将一个基于 Python 2.7 的老旧脚本库迁移到 Python 3.10,并添加类型注解。

Prompt:

“将 scripts/ 目录下的所有 Python 文件迁移到 Python 3。使用 typing 模块添加类型注解。确保所有 print 语句都改为使用 logger。”

Claude Agent 执行流:

  1. Analysis: 扫描目录,发现 50 个 .py 文件。
  2. Planning: 决定按依赖顺序处理,先处理底层的 utils.py
  3. Iterative Refactoring:
    • File 1: print "hello" -> logger.info("hello").
    • File 1: def add(a, b): -> def add(a: int, b: int) -> int:.
    • File 1: 修复 urlliburllib.request 的导入变化。
  4. Validation:
    • 尝试运行脚本。发现 strbytes 编码错误。
    • 自我修正:添加 .decode('utf-8')
  5. Batch Processing: 对剩余 49 个文件重复此过程。

重点: 对于这种机械性强但极易出错的体力活,Agent 是完美的人选。

7.5.3 案例三:从零构建测试套件

任务:为一个“裸奔”的电商后端 API 项目补充集成测试。

Prompt:

“分析 src/routes 下的所有 API 路由,并在 tests/ 目录下编写对应的集成测试。使用 pytesthttpx。覆盖正常路径和常见的 400/404 错误路径。”

Claude Agent 执行流:

  1. Understanding: 遍历路由文件,解析出 GET/POST 请求的参数校验逻辑 (Pydantic models)。
  2. Scaffolding: 创建 conftest.py,配置测试数据库 fixture。
  3. Writing Tests:
    • 生成 test_products.py: 测试商品列表、商品详情。
    • 生成 test_orders.py: 测试创建订单、库存扣减。
    • 亮点: 自动生成了 mock 数据(模拟的商品名、价格)。
  4. Running & Fixing:
    • 初次运行报错 401 Unauthorized。
    • Claude 意识到需要先调用 /login 获取 Token。
    • 自动在 conftest.py 中添加了一个获取 Token 的 fixture,并注入到所有测试用例中。

7.5.4 案例四:Cowork 模式——非开发者的代理编程

2026 年 1 月,Anthropic 发布了 Cowork 模式,将 Claude Code 的能力扩展到非程序员用户。

什么是 Cowork?

Cowork 是 Claude Code 的“轻量版”,专为非技术用户设计:

  • 在 Claude 桌面应用中直接访问
  • 授权 Claude 访问指定文件夹
  • Claude 可以读取、编辑、创建文件
  • 支持与 Connectors (MCP) 和 Skills 配合使用

典型用例

场景 操作
整理下载文件夹 Claude 自动分类、重命名文件
从截图生成报表 识别多张收据截图,生成 Excel 汇总
笔记整理成报告 读取散乱的笔记文件,输出格式化文档

使用方式

  1. 下载 Claude 桌面应用(macOS 或 Windows;2026-04-09 GA 后对所有付费计划开放,见 7.8 节)
  2. 点击侧边栏中的 “Cowork”
  3. 选择要授权的文件夹
  4. 描述任务,让 Claude 执行

安全注意事项

Cowork 虽然强大,但需要注意以下风险:

风险 说明 缓解措施
文件误操作 Claude 可能误解指令删除文件 重要操作前 Claude 会请求确认
Prompt Injection 恶意内容可能干扰 Claude 行为 Anthropic 内置了防护,但仍需谨慎处理不可信文件
权限范围 只有授权的文件夹可被访问 最小权限原则:只授权必要的文件夹

7.5.5 成功要素总结

为什么有些人的 Agent 总是写出 Bug,而有些人的 Agent 却能通过图灵测试?

显性上下文

不要让 Agent 猜。如果有数据库 Schema,直接喂给它。如果有 UI 设计图,截图喂给它。

  • Tip: 维护一个 CLAUDE.md 文件在项目根目录(参见 7.2 节),专门写给 AI 看。

增量反馈

不要试图一次性生成整个操作系统。

  • Bad: “做一个类似 Windows 的 OS。”
  • Good: “先实现一个简单的文件系统抽象,支持 read/write。” -> “好,现在基于这个 FS 实现一个 shell。”

即时审查

Agent 就像一个手速极快但偶尔粗心的初级程序员。 Trust, but Verify (信任,但要验证)。 永远不要在不看 Diff 的情况下直接 git commit。务必运行测试。


Agentic Coding 正在重塑软件工程的每一环。它不是要取代程序员,而是要 消灭重复劳动,让开发者专注于架构设计和业务价值。

掌握了日常实战场景后,接下来深入 Claude Code 的高级特性——hooks、权限体系与自动化工作流。

➡️ 7.6 高级特性与自动化