# AI Coding 实战

URL: https://caijiao.org/ai-coding/
Source: docs/ai-coding/index.md
Description: AI Coding 实战专题整理 Codex、Claude Code、Cursor、MCP、Agent Skills、Ollama、Qwen Code 等工具在真实开发项目中的安装配置、工作流、上下文管理和常见风险。

AI Coding 实战关注 AI 如何进入真实开发流程：读项目、改代码、写测试、做 Review、生成文档、分析网站和辅助运营。你可以从工具入门开始，也可以直接按具体任务查找可复制的工作流。

## 从这里开始

如果你刚接触 AI 编程，建议先理解 coding agent 的工作方式，再学习如何给项目补上下文，最后再尝试 MCP、Hooks 和 Skills 这类扩展能力。

### 认识 AI 编程助手

- [Claude Code 实战课程](/claude-code-in-action/)
- [Claude Code 安装配置](/claude-code-in-action/04-claude-code-setup)
- [什么是编码助手](/claude-code-in-action/02-what-is-a-coding-assistant)

### 让 AI 读懂项目

- [Claude Code 项目设置](/claude-code-in-action/05-project-setup)
- [Claude Code 添加上下文](/claude-code-in-action/06-adding-context)
- [Claude Code 控制上下文](/claude-code-in-action/09-controlling-context)

### 扩展开发工作流

- [Claude Code 自定义命令](/claude-code-in-action/10-custom-commands)
- [Claude Code MCP 服务器](/claude-code-in-action/11-mcp-servers-with-claude-code)
- [Claude Code Hooks](/claude-code-in-action/13-introducing-hooks)
- [Agent Skills 概述](/agent-skills/)
- [Agent Skills 规范](/agent-skills/specification)

## AI 开发与工具选择

- [Codex、Cursor 等 AI 开发工具到底能帮多少忙](/posts/130)
- [AI 写代码之后，程序员真正需要做什么](/posts/131)
- [AI IDE 真的可以让一个人完成整个网站吗](/posts/128)
- [我用 AI 从 0 开发一个网站，实际过程记录](/posts/129)
- [AI 现在到底能不能独立完成一个网站](/posts/178)
- [Codex 和 Cursor 到底有什么区别](/posts/179)
- [AI IDE 会不会改变个人开发者的工作方式](/posts/180)
- [我测试了几个 AI IDE，最大的区别到底在哪里](/posts/196)
- [AI 工具越来越多，普通人到底应该怎么选](/posts/197)
- [AI 写代码越来越强，程序员还需要学习什么](/posts/192)

## 本地模型与项目实践

- [Docker + Ollama + Qwen3-Coder-Next 本地 AI 编程部署指南](/posts/51)
- [提示词、MCP 和 Skills 区别详解](/posts/48)
- [提示词工程教程](/prompt/)
- [提示词工程最佳实践](/prompt/best-practices)
- [提示词工具与实践](/prompt/tools)
- [使用 AI 生成代码与接口文档](/posts/31)
- [AI 开发最大的坑，不是代码写错](/posts/194)
- [AI 生成的代码为什么经常“看起来正确”](/posts/193)

## AI 与网站运营

- [AI 生成 SEO 文章，到底能不能用](/posts/183)
- [我让 AI 一次生成 100 篇文章，会发生什么](/posts/184)
- [AI 做 SEO 最大的风险是什么](/posts/185)
- [AI 能不能帮一个人完成网站运营](/posts/186)
- [我用 AI 做了一次完整的关键词研究](/posts/187)
- [AI 能不能自动分析竞争对手网站](/posts/188)
- [AI 能不能自动生成网站内容矩阵](/posts/189)
- [AI 能不能帮助一个工具网站生成 SEO 页面](/posts/201)

## 推荐学习路线

1. **先理解编码助手的工作方式**：阅读 [什么是编码助手](/claude-code-in-action/02-what-is-a-coding-assistant)，区分补全工具、聊天助手和能读写项目的 coding agent。
2. **再建立项目上下文**：从 [项目设置](/claude-code-in-action/05-project-setup) 和 [添加上下文](/claude-code-in-action/06-adding-context) 开始，把技术栈、命令、目录约定和注意事项写进项目文档。
3. **然后练习小步修改**：让 AI 先处理低风险任务，例如补测试、修文档、调整样式、解释报错，再逐步进入功能开发和重构。
4. **最后接入扩展能力**：需要访问外部工具时学习 MCP；需要沉淀团队流程时学习 Agent Skills；需要本地推理时再看 Ollama、Qwen Code 等方案。

## 真实项目工作流

AI Coding 不适合只用一句话“帮我改好”。在真实项目里，更稳定的方式是把任务拆成几个阶段：

| 阶段 | 你要提供什么 | AI 适合做什么 | 人需要检查什么 |
| --- | --- | --- | --- |
| 读项目 | 需求、入口文件、相关目录、运行命令 | 梳理现有实现、定位影响范围 | 是否漏掉关键模块或业务约束 |
| 定方案 | 目标行为、边界条件、验收标准 | 给出修改步骤和测试策略 | 方案是否过度设计，是否破坏现有约定 |
| 改代码 | 明确允许修改的范围 | 实现功能、补测试、更新文档 | 核心逻辑、错误处理、数据兼容性 |
| 验证 | lint、build、test、手动检查方式 | 运行命令并解释失败原因 | 失败是否来自本次修改，是否需要人工复现 |
| Review | 变更 diff 和风险点 | 总结改动、指出潜在问题 | 安全、性能、权限、线上回滚 |

## 常用任务模板

### 修改已有功能

```text
请先阅读这个功能相关的文件，说明当前实现流程。
目标是：<写清楚用户能看到的行为变化>。
限制条件：不要改动 <不希望动的模块>，保持现有 API 兼容。
完成后运行 <项目中的验证命令>，并总结改动和风险。
```

这个模板适合修 bug、调整页面交互、补接口字段和小型重构。关键是让 AI 先解释现状，再进入修改。

### 生成测试和 Review 清单

```text
请基于当前 diff 生成测试建议。
按单元测试、集成测试、手动验证、回归风险分类。
不要虚构已经存在的测试文件；如果需要新增测试，请说明放在哪个目录。
```

当项目已有测试体系时，可以让 AI 直接补测试；当项目测试较少时，先要它给出人工验证清单，避免为了“有测试”而写出不可靠的用例。

### 整理项目上下文

```text
请阅读 package.json、README、构建脚本和主要源码目录，
整理一份给 coding agent 使用的项目说明。
内容包括：技术栈、常用命令、目录职责、代码风格、不要随意修改的文件。
```

这类文档可以放进 `AGENTS.md`、`CLAUDE.md` 或团队约定的上下文文件中。内容要短、准、可执行，避免把整份需求文档塞进去。

## 风险与检查清单

- **上下文不足**：AI 可能只看到局部文件，因此复杂任务要明确入口、关联模块和业务规则。
- **看似正确的代码**：能编译不代表行为正确，关键路径仍要人工 Review。
- **测试命令失败**：先区分是本次修改导致，还是项目原有问题；不要让 AI 自动忽略失败。
- **权限和数据风险**：涉及认证、支付、用户数据、文件删除、批量更新时，要把边界条件写清楚。
- **生成内容风险**：AI 生成文档、SEO 页面和运营内容时，要检查事实、重复度和品牌语气。

## 官方参考资料

- [OpenAI Codex](https://openai.com/codex/)
- [OpenAI Codex 开发者资源](https://developers.openai.com/learn/codex)
- [Claude Code 文档](https://docs.claude.com/en/docs/claude-code/overview)
- [Model Context Protocol 文档](https://modelcontextprotocol.io/docs)
- [Agent Skills 规范](https://agentskills.io/)
