04 代码生成

代码生成才是重头戏

说实话,我第一次用 Claude Code 生成代码的时候,真的被惊艳到了。

那会儿我需要写一个数据处理脚本,按照传统方式得花个把小时。结果跟 Claude Code 说清楚需求,它几秒钟就给我生成了完整的代码,而且质量还挺不错。从那之后,我就成了代码生成的忠实用户。

无论你需要一个简单的工具函数,还是整个项目的架构,它都能帮你搞定。关键是你得知道怎么跟它沟通。


从函数开始

最简单的就是一个函数:

1
claude "用 Python 写一个函数,计算两个数字的平均值"

它会给你类似这样的代码:

1
2
3
def average(a, b):
"""计算两个数字的平均值"""
return (a + b) / 2

挺简单的吧?但实际开发中,你需要的不止是这些。你可能需要参数验证、错误处理、类型提示。那就把要求说清楚:

1
2
claude "用 Python 写一个函数,计算列表的平均值。
需要处理空列表情况,验证输入是数字类型,包含文档字符串,添加类型提示"

这次它会给你更完善的代码,包含 try-except、类型检查、完整的文档。我一般都会要求它加上这些,因为生产环境的代码不能太随意。

有时候你需要实现特定算法,比如二分查找。那就说清楚算法名称、是否需要自定义比较函数、怎么处理边界情况。它通常能给出不错的实现,还会加上注释和使用示例。


类也不在话下

生成类也挺常见的。比如你需要一个银行账户类:

1
claude "用 Python 创建一个 BankAccount 类,包含存款、取款(余额不足时抛出异常)、查询余额方法,还要有交易历史记录"

它会给你一个完整的类实现,包含构造函数、各个方法、异常处理、交易记录。我试过几次,质量都挺不错的。它甚至会考虑到一些你自己可能没注意到的细节,比如交易时间戳、余额验证等等。

如果你需要面向对象的特性,比如继承和多态,直接说就行:

1
claude "用 JavaScript 创建一个 Shape 基类,和 Circle、Rectangle 子类,实现计算面积和周长的方法"

模块级别的代码

有时候你需要生成整个模块,而不仅仅是一个函数或类。

比如一个日期工具模块:

1
claude "创建一个 Python 模块 date_utils.py,包含计算工作日数量、判断是否为工作日、获取下个工作日等函数,添加类型提示和文档字符串"

或者一个 API 客户端:

1
claude "创建一个 Node.js 模块用于调用 GitHub API,包含认证处理、仓库列表获取、问题创建、错误处理,使用 axios"

这种时候它会把相关的功能组织在一起,给你一个完整可用的模块文件。


整个项目都能生成

这个我真心觉得厉害。你甚至可以让它帮你生成整个项目结构。

比如一个 Express.js 的 REST API 项目:

1
claude "为一个 Express.js REST API 创建项目结构,包含用户认证(JWT)、MongoDB 数据模型、中间件、路由、环境配置、README 说明"

它会给你一个完整的目录树,告诉你每个文件应该放什么内容。虽然不是真的把文件创建好(这点它做不到),但它给出的结构图足够你照着实现了。

对于多文件项目,我建议分步来。先让它给你搭好骨架,然后再逐个文件实现。这样比一次性生成所有内容要好,因为你可以每一步都验证一下,发现问题及时调整。


代码风格这事儿

如果你有特定的编码规范,直接告诉它。

比如你团队用的是 Airbnb JavaScript 风格指南:

1
claude "用 JavaScript 写一个 React 组件,遵循 Airbnb JavaScript 风格指南,使用函数组件和 Hooks"

或者你需要用特定的测试框架:

1
claude "为这个函数编写单元测试,使用 pytest,包含正常情况和边界情况"

文档格式也能指定:

1
claude "用 JSDoc 格式为这个函数添加文档注释"

我一般都会提一下代码规范,因为它生成的代码默认风格可能跟你们团队的不一样。与其让它生成完了你再改,不如一开始就说清楚。


几个小技巧

用了这么久,我积累了一些经验。

别指望一次就得到完美结果。我一般会先生个基础版本,然后再逐步添加功能。比如先创建一个简单的 HTTP 服务器,然后再加请求日志,最后再加错误处理。这样每一步都能验证,出了问题也好定位。

生成代码之后,立即让它自己审查一遍。这个技巧特别有用:

1
claude "创建一个函数验证邮箱格式,然后审查生成的代码,指出潜在的安全问题"

它能发现很多你自己可能忽略的问题,尤其是安全方面的。

有时候你想看看不同的实现方式,那就直接问:

1
claude "提供三种不同的方式来实现单例模式,并解释每种方式的优缺点"

它通常能给你几个不同的思路,你可以根据具体场景选择最合适的。

性能优化也挺重要的。生成完代码之后,可以让它帮忙优化:

1
claude "创建一个函数检查列表是否包含重复项,然后优化它的性能"

实际场景举例

说几个我常用的场景吧。

数据处理脚本。这个真的太常用了:

1
claude "创建一个 Python 脚本,读取 CSV 文件,过滤出特定条件的数据,计算统计信息,导出到新的 CSV 文件"

以前这种脚本我得写半天,现在几分钟就搞定了。

自动化任务也特别方便:

1
claude "写一个 Bash 脚本,自动备份 PostgreSQL 数据库到 S3,包括错误处理、日志记录、通知功能"

测试代码生成也省了不少时间:

1
claude "为这个 API 端点编写集成测试,使用 Jest 和 Supertest"

还有配置文件。每次写 docker-compose.yml 我都得查半天文档,现在直接问它就行:

1
claude "创建一个 docker-compose.yml,包含 PostgreSQL 数据库、Redis 缓存、Node.js 应用、网络配置"

几个建议

明确需求最重要。语言、功能、输入输出、特殊要求,这些都得说清楚。你越具体,它给的答案就越接近你想要的。

质量标准也得提。我一般会要求它包含错误处理、类型提示、文档字符串、使用示例,还有遵循什么编码规范。这样生成的代码才能直接用。

最好让它顺便把测试也写了:

1
claude "创建一个函数并编写相应的单元测试"

这样你不仅有实现代码,还有测试用例,一举两得。

生成完代码之后,别忘了让它审查一下,然后根据建议改进。这个步骤我从来不会省,因为它的建议确实有价值。


几个常见问题

有人问,生成的代码有错误怎么办?

这种情况我遇到过。别慌,直接把错误信息反馈给它:

1
claude "这段代码有错误:[错误信息],请帮我修复并解释原因"

它一般能快速定位问题,还会告诉你为什么会错、怎么改、以后怎么避免。

还有人问,怎么让它生成符合团队规范的代码?

简单,直接把你们的编码规范文档贴给它:

1
claude "使用以下规范生成代码:[粘贴团队的编码规范文档]"

它就会按照你们的规范来生成代码。不过这个可能需要多试几次,有时候它理解得不太准确。

框架支持方面,它基本都能搞。你只要说清楚用什么框架、哪个版本就行:

1
2
claude "使用 React 18 和 TypeScript 创建..."
claude "使用 Django 5 和 Django REST Framework 创建..."

总结一下

代码生成是 Claude Code 最实用的功能之一。从简单的函数到完整的项目架构,它都能帮你搞定。

但关键是你要会提问。说得越清楚,它生成的就越接近你想要的。别指望一次就完美,慢慢迭代,逐步优化,这样效果最好。

还有个重要原则:永远不要直接用它的代码。至少要通读一遍,理解它做了什么,然后测试一下。它是助手,不是替代品。


下一步

代码生成只是 Claude Code 功能的一部分。接下来我们聊聊怎么让它帮你理解代码,这个功能也特别实用。

第五章:代码理解

咱们继续!