> For the complete documentation index, see [llms.txt](https://yeasy.gitbook.io/claude_guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yeasy.gitbook.io/claude_guide/di-san-bu-fen-jin-jie-pian/07_coding/7.1_assistant.md).

# 7.1 Claude 作为编程助手

软件开发正处于转折点。编程不再是一个人对着屏幕敲代码的孤独旅程，而变成了与 AI 结对编程 (Pair Programming) 的协作过程。 相比其他 AI，Claude 在编程领域有着独特的优势：**超长上下文窗口（Opus 4.6+ 支持 1M Token）** 和 **卓越的推理能力 (Opus/Sonnet)**，这使它成为处理大规模重构和复杂架构设计的理想伙伴。

## 7.1.1 核心能力图谱

Claude 不仅仅是一个代码补全工具，它可以胜任以下角色：

| 角色                            | 能力描述                                                          | 适用场景            |
| ----------------------------- | ------------------------------------------------------------- | --------------- |
| **Polyglot Coder** (多语言编程)    | 精通 Python, TS, Go, Rust, C++ 等主流语言，甚至包括 COBOL, Fortran 等古董语言。 | 新项目开发、遗留代码维护。   |
| **Refactoring Expert** (重构专家) | 理解复杂的依赖关系，进行函数提取、变量重命名、设计模式优化。                                | 代码坏味道清理、架构升级。   |
| **Debugger** (调试者)            | 根据错误堆栈 (Traceback) 和代码上下文，精准定位 Bug 根源。                        | 线上故障排查、CI 失败分析。 |
| **Quality Engineer** (质量工程师)  | 编写单元测试 (`pytest`, `jest`)，生成测试用例，计算覆盖率。                       | TDD 开发、回归测试。    |
| **Tech Writer** (技术作家)        | 为代码编写 Docstring，生成 API 文档，撰写 README。                          | 文档补全、知识库构建。     |

## 7.1.2 提示工程最佳实践

在编程任务中，Prompt 的质量直接决定了代码的质量。

### 上下文就是一切

Claude 无法修改它看不见的代码。

* **Bad**: “帮我优化 `process_data` 函数。” (Claude: 哪个 process\_data?)
* **Good**: “请优化 `src/utils.py` 中的 `process_data` 函数。它是被 `job.py` 调用的。这里是这两个文件的内容...”

### 定义输出规范

明确告诉 Claude 你要什么风格的代码。

* *Constraint*: “使用 Python 3.10+ 的 Type Hint。”
* *Constraint*: “遵循 Google Style Guide。”
* *Constraint*: “不要使用 `try-except` 包裹所有代码，保留原始报错。”

### 思维链调试

遇到极其隐晦的 Bug 时，强迫 Claude 先思考。

> “请先阅读提供的日志文件。在 `<analysis>` 标签中逐步分析错误可能发生的原因。列出 3 个假设，然后逐一验证。最后在 `<fix>` 标签中给出修复代码。”

## 7.1.3 常见陷阱与对策

### 幻觉库

Claude 偶尔会引用不存在的库或方法（比如 `pandas.read_mind()`）。

* **对策**: 明确限制第三方库的版本。 “只允许使用 standard library 和 pandas 2.0+。”

### 循环依赖

在生成跨文件代码时，Claude 有时会忽略导入路径的问题。

* **对策**: 显式提供项目结构树（`tree` 命令的输出），让它了解文件层级。

### 截断代码

对于长文件，Claude 可能会偷懒输出 `// ... existing code ...`。

* **对策**: 在 System Prompt 中强调 “Do not be lazy. You must output the full, compilable code.” 或者使用 Diff 格式输出。

## 7.1.4 与 Copilot 的区别

| 特性          | GitHub Copilot       | Claude (Opus/Sonnet)                      |
| ----------- | -------------------- | ----------------------------------------- |
| **优势**      | 极速补全，IDE 内无缝集成，延迟极低。 | 深度推理，理解整个项目架构，擅长解决复杂难题。                   |
| **交互**      | Tab 键补全，行级建议。        | 对话式交互，任务级建议。                              |
| **Context** | 主要是当前文件 + 最近打开的文件。   | 可以一次性吃掉整个仓库的核心代码（Opus 4.6+ 支持 1M tokens）。 |

**结论**: Copilot 是“自动驾驶辅助”，负责每一行的输入；Claude 是“领航员”，负责指引方向和解决难题。**两者结合是目前的最佳实践。**

***

虽然可以直接在网页版与 Claude 对话，但频繁的 Copy-Paste 效率太低。为了让 Claude 真正融入开发流程，需要一把更锋利的武器——**Claude Code (CLI)**。

➡️ [Claude Code CLI 入门](/claude_guide/di-san-bu-fen-jin-jie-pian/07_coding/7.2_cli.md)
