AICoding 的一些心得

AI Coding

其实现在用大模型写代码是一个非常流行的事情了,这里分享下使用 codex 和 claude code 写代码的一些心得。

提前熟悉项目 or 做好系统设计

这里其实有一点废话,哪怕是古法编程最开始也是需要对项目或者系统有一个熟悉的过程,但是这里不一样的地方是我们可以把项目先梳理一遍,画出架构图,如果有架构图更好。然后把对项目的理解喂给 Claude Code 或者 GPT ,确认没有问题之后,让它生成一份文档出来,在后续开发上会使用这个文档。

简单举个例子,这是一个镜像同步工具:

1
2
3
4
5
6
7
├── cmd
│ └── main.go
├── source
│ └── docker
├── target
│ └── harbor
└── sync

我会把我的理解和画出的架构图,整理成一份文档给 claude code ,之后让它解释。

编写 prompt

用大模型写代码,其实很大程度上取决于你“怎么说”。一个好的 prompt 可以帮助我们提高效率,比如说使用 python 实现一个排序算法,可以这样写:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
### 角色设定
你是一名资深的 Python 后端工程师,拥有 10 年以上开发经验。
精通算法设计、代码可读性优化与性能调优。
擅长编写简洁、结构化、易维护的 Python3 代码,熟悉以下开发规范:

PEP8 代码规范

类型注解(type hints)

单元测试设计

在回答问题或编写代码时,请遵循以下要求:

给出完整的函数实现;

在关键逻辑处添加简要注释(说明思路或复杂语句);

使用 Markdown 代码块输出结果;

若算法存在多种实现方式,可简要比较其优缺点;

输出保持整洁,不添加多余解释性文字
### 任务要求
现在请你实现一个排序算法函数:
`sort_numbers(nums: list[int]) -> list[int]`

要求:
1. 从小到大排序;
2. 函数应包含必要注释;
3. 输出格式为 Markdown 代码块;
4. 附带一个简单的测试示例;
5. 若可能,请说明算法复杂度。

输入示例:
```
4, 2, 7, 3, 1, 8
```

期望输出:
```
1, 2, 3, 4, 7, 8
```

### 例子:
你需要使用 Python3 实现一个排序算法,默认从小到大排序。
输入:
4,2,7,3,1,8
输出:
1,2,3,4,7,8
请用清晰的函数结构和注释完成。
```

写好需求文档

就像前面写 Prompt 那样,需求文档其实是给 AI 的“背景知识”。 AI 不知道你在做什么项目、这个功能要放在哪个模块里,所以我们得提前把这些信息喂给它。通常我会在文档里写几句说明,比如功能背景、实现方式、注意事项,再加上一张简单的流程图。有时候哪怕是几句话,也能让 Claude Code 理解得更准确,少走弯路。

使用之前 prompt 中排序的例子来简单写一个需求文档:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
### 需求背景:
在数据处理模块中,需要一个通用的排序函数,用于对输入的整数列表进行升序排序,方便后续的统计与分析。

### 实现方式:
使用 Python3 实现 sort_numbers(nums: list[int]) -> list[int]。
函数需要从小到大排序,并返回排序后的新列表。

### 注意事项:

输入数据应为整数列表;

若输入为空或包含非法值,需给出合理处理(如报错或返回空列表);

代码需符合 PEP8 规范,并包含必要注释;

输出以 Markdown 代码块格式返回;

附带一个简单的测试用例。

### 输入示例
4, 2, 7, 3, 1, 8
### 期望输出
1, 2, 3, 4, 7, 8

flowchart TD
    A[开始] --> B[接收输入列表 nums]
    B --> C{是否为空}
    C -- 是 --> D[返回空列表]
    C -- 否 --> E{是否全为整数}
    E -- 否 --> F[抛出 ValueError 异常]
    E -- 是 --> G[使用 sorted 函数升序排序]
    G --> H[返回排序结果]
    H --> I[结束]

管理上下文

随着项目代码的增多,大模型有时会“变笨”——它可能:

  1. 忘记项目结构;
  2. 误解函数命名或模块职责;
  3. 生成重复、冲突或风格不一致的代码。

出现这些问题的根本原因,可能是上下文没有管理好。此时,之前编写的系统设计文档需求说明就能派上用场了。你可以把它们当作“上下文约束”,让模型在清晰的语境下继续生成代码,从而保持风格一致,降低“抽风”的概率。此外,在每次完成一个功能、或准备在新窗口开始开发前,都可以让 Claude Code 帮你总结当前对话内容,输出成一个 Markdown 文件(例如 sync_module_summary.md)。下次重新打开 Claude Code 时,把这份文件作为输入上下文,让它快速恢复对项目的理解。

参考

  1. https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
  2. https://www.anthropic.com/engineering/claude-code-best-practices
  3. https://www.promptingguide.ai/zh

AICoding 的一些心得
http://example.com/2025/10/16/AICoding-的一些心得/
作者
Wu Liang
发布于
2025年10月16日
许可协议