AI辅助编程进阶实战:别再只会问“帮我写个函数”了
先泼盆冷水:你很可能在用AI的“新手模式”
我见过太多同事把ChatGPT或Copilot当成一个高级搜索引擎:丢进去一句“用Python写个快速排序”,复制粘贴,搞定。这当然有用,但远没榨出AI的真正价值。
要我说,现在AI编程工具的能力上限,已经被拉到“可以独立完成一个中型模块”的程度了。关键差距在于——你会不会下指令。下面分享几个我日常真实在用的高阶玩法,每一个都附上可复用的Prompt模板,你可以直接拿去改。
场景一:让它替你写单元测试(别手写了,真写不完)
以前写单测是最磨人的环节,尤其是补老代码的测试。现在你可以直接喂给AI一个函数,让它生成覆盖正常情况、边界情况和异常情况的测试用例。
可复用 Prompt 模板:
你是一名资深后端工程师,请为下面的 Python 函数编写 pytest 单元测试。
要求:
1. 覆盖正常输入、边界值、异常输入三种情况。
2. 使用 fixture 管理测试数据。
3. 添加中文注释说明每个测试的目的。
4. 只输出测试代码,不要修改原函数。
原函数:
[在这里粘贴你的函数代码]实战效果:我拿一个处理订单折扣的复杂函数试了试,AI不仅生成了10个测试用例,还自动构造了一个模拟数据库连接的fixture,我只需核对逻辑是否正确。以前需要两个小时的工作,现在20分钟搞定。
场景二:AI做代码审查,比你想的靠谱
把一段代码贴给AI,要求它从安全性、性能、可维护性三个维度审查,经常能发现我忽略的坑。
审查 Prompt 模板:
请以高级技术负责人的身份审查以下代码。按安全性、性能、可维护性三个维度列出问题,每个问题需要给出严重等级(高/中/低)和具体的修改建议,并输出修改后的代码片段。最后,用一句话总结这段代码最大的风险。
代码:
[在这里粘贴代码]我最近用它审了一个文件上传接口,AI立即指出缺少文件类型校验和大小限制,还提示了路径遍历漏洞。这些东西在匆忙写功能时太容易被遗漏了。
场景三:从一句话需求到完整功能模块
这才是AI编程的“高端局”。不要让AI一次性生成全部代码,而是让它先出方案,你确认后,再让它分文件、分步骤实现。
分步 Prompt 流程:
第一步——方案设计:
我需要为一个博客系统增加“文章定时发布”功能。请先不要写代码,只给我设计实现方案,包括:数据库字段变更、后端API设计、定时任务触发方式。用Markdown格式输出。确认方案后,第二步——逐个实现:
方案我确认了。现在请实现数据库迁移脚本(SQL),以及 Python 后端定时检查并发布文章的 Celery 任务函数。代码需要包含完整的异常处理和日志记录。通过这种“人把关设计、AI负责落地”的模式,你可以控制架构,而把重复的搬砖工作全扔给AI。我上次用这个方法重构了一个支付回调模块,涉及四个文件的改动,全程只花了一个小时。
场景四:自动生成技术文档(解放你的README)
代码写完,README和API文档永远是最后写的。现在直接把代码喂给AI,让它吐出一份结构完整的文档。
文档生成 Prompt:
请根据以下项目代码,生成一个标准的 README.md 文件。
需要包含:项目简介、本地开发环境搭建步骤、核心API接口说明(含请求/响应示例)、配置说明、以及如何运行测试。
代码文件列表:
- app.py: [粘贴内容]
- requirements.txt: [粘贴内容]
- config.py: [粘贴内容]我试过拿一个Flask微服务生成文档,生成的结果直接能用,我只需补充一个部署章节和项目Logo。以后开源项目再也不怕文档烂尾了。
进阶组合拳:把AI塞进你的Git工作流
你还可以通过Git Hook或者CI脚本,让AI在每次提交代码时自动执行审查或生成发布说明。比如用pre-commit钩子调用OpenAI API检查代码风格和潜在bug,但要注意成本和安全。
一个简化版示例(保存为 .git/hooks/pre-commit,需安装openai):
#!/bin/bash
# 自动检查暂存区 Python 文件
git diff --cached --name-only -- '*.py' | while read file; do
review=$(curl -s https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"gpt-4o\", \"messages\":[{\"role\":\"user\", \"content\":\"审查代码安全性和风格: $(cat $file)\"}]}" | jq -r '.choices[0].message.content')
echo "Review for $file: $review"
done当然,生成的内容需要人最终确认,不能直接作为提交门禁,但作为辅助提醒已经很好用了。
避坑指南:别被AI的自信带沟里
- 幻觉代码:AI有时会调用不存在的库函数或已废弃的API。遇到不确定的,立即查官方文档,别盲信。
- 安全漏洞:永远不要直接把AI生成的SQL拼接代码用到生产环境,必须检查是否有注入风险。
- 密钥泄露:粘贴代码到AI工具前,务必清除硬编码的Token、密码,用占位符替换。
- 过度生成:AI喜欢把简单问题复杂化,会生成一堆你不需要的过度设计。保持提示词里强调“简洁、最小可行”。
最后,送你一个“提示词库”起步模板
我把常用的提示词分类存到了一个 Markdown 文件里,每次需要就复制修改。你可以直接拿走:
- 解释代码:
请逐行解释以下代码的作用,尤其重点解释[某部分]的逻辑。 - 重构建议:
这段代码功能正确,但很难维护。请给出三种重构方案,并对比优缺点。 - 性能优化:
请分析以下SQL查询的性能瓶颈,并给出优化后的查询语句和索引建议。 - 转换语言:
将下面这段Java代码翻译成Rust,保持逻辑一致,并利用Rust的所有权特性来提高安全性。
用好AI编程的诀窍不是学一堆复杂技巧,而是养成“把AI当作一个可以对话的资深同事”的习惯。多问“为什么这样”,多让它“先给方案再写代码”,你会发现,它能帮你分担的东西,远不止写一个排序算法那么简单。