模块7:编程与技术场景
难度:⭐⭐⭐⭐ 高级 | 建议时长:4-5小时
目标:掌握代码生成、审查、调试、重构的专业提示词,以及 API 调用和 AI 辅助开发工作流
7.1 代码生成
基础:直接生成
用 Python 实现一个函数:
- 功能:输入字符串列表,返回最长的回文字符串
- 函数名:find_longest_palindrome
- 要求:有类型提示、详细中文注释、时间复杂度尽量低
- 附带 3 个测试用例
进阶:带约束的代码生成
用 Python 写一个日志管理工具类:
功能需求:
1. 写入日志到文件
2. 支持分级(DEBUG/INFO/WARNING/ERROR)
3. 日志文件按日期自动切割
4. 设置最大保留天数
技术约束:
- 仅用 Python 标准库
- 线程安全
- 兼容 Python 3.8+
代码规范:
- Google 风格 docstring
- 中文注释
- 所有公开方法有类型提示
输出:完整可运行代码 + 使用示例
技巧:约束越明确,生成的代码越接近你的项目规范。 不说约束,AI 会按它认为的”最佳实践”来,可能跟你项目风格完全不同。
7.2 代码审查
请审查以下代码,从这些角度给出建议:
1. Bug检查:逻辑错误或边界情况遗漏
2. 性能:有没有可优化的地方
3. 安全性:SQL注入、XSS 等安全隐患
4. 可读性:命名、结构、注释
5. 最佳实践:是否符合社区规范
输出格式:
| 行号 | 问题类型 | 严重程度 | 问题描述 | 改进建议 |
代码:
"""
[粘贴你的代码]
"""
技巧:让 AI 用表格输出审查结果,方便你逐条跟进。 如果代码很长,分文件/分函数审查效果更好。
7.3 Bug 调试
我遇到以下错误,请帮我分析:
错误信息:
"""
[粘贴完整的错误堆栈]
"""
相关代码:
"""
[粘贴出错的代码]
"""
环境:Python 3.11 / macOS / [相关依赖版本]
请按以下步骤分析:
1. 错误原因(根因是什么)
2. 修复方案(给出修改后的代码)
3. 如何避免同类问题(预防建议)
技巧:错误堆栈一定要贴完整,不要只贴最后一行。 AI 需要看到完整的调用链才能准确定位问题。
7.4 代码重构
请重构以下代码:
重构目标:
1. 提高可读性(当前逻辑太乱)
2. 遵循单一职责原则
3. 增加错误处理
4. 提取可复用的工具函数
约束:
- 保持外部接口不变(函数名和参数不变)
- 功能完全一致
- 用了设计模式要说明是什么、为什么用
原始代码:
"""
[粘贴代码]
"""
输出:
1. 重构后的完整代码
2. 改动说明(做了什么、为什么)
3. 前后对比(哪些地方改善了)
7.5 API 调用与 Function Calling
什么是 Function Calling?
Function Calling = 让 AI 不只是”说话”,还能”动手”。
类比:
普通 AI → 你问它天气,它说"我没法查实时天气"
Function Calling → 你问它天气,它调用天气 API 获取真实数据返回给你
没有 Function Calling:AI 只能动嘴
有了 Function Calling:AI 能动手操作外部工具
AI 怎么调用函数的?
你发送:
"北京明天天气怎么样?"
AI 判断:
"这个问题需要查天气,我有一个 get_weather 函数可以用"
AI 返回(不是文字,是一个函数调用请求):
{ "function": "get_weather", "arguments": { "city": "北京", "date": "明天" } }
你的程序:
接收到调用请求 → 执行 get_weather("北京", "明天") → 获取结果
你把结果发回给 AI:
{ "temperature": "15-22℃", "weather": "小雨" }
AI 最终回复:
"北京明天小雨,气温 15-22℃,建议带伞出门。"
设计函数描述的提示词
当你用 API 接入 Function Calling 时,需要用自然语言描述你的函数:
{
"name": "search_products",
"description": "在商品数据库中搜索商品。当用户询问商品信息、
价格、库存时调用此函数。",
"parameters": {
"type": "object",
"properties": {
"keyword": {
"type": "string",
"description": "搜索关键词,如商品名称或类别"
},
"max_price": {
"type": "number",
"description": "价格上限(元),不填则不限"
}
},
"required": ["keyword"]
}
}关键:函数的
description写得好不好,直接决定 AI 能不能在正确的时候调用它。 就像给新员工的岗位说明书——写得越清楚,他越知道什么情况该做什么。
7.6 AI 辅助开发工作流
日常开发中的 AI 使用模式
模式1:解释 → 修改 → 验证
"先解释这段代码的作用" → "把 XX 改成 YY" → "检查修改后有没有问题"
模式2:需求 → 方案 → 代码 → 测试
"我要实现XX功能" → "给出2-3种方案" → "用方案A写代码" → "写单元测试"
模式3:报错 → 定位 → 修复 → 防范
"分析这个报错" → "定位根因" → "给出修复代码" → "怎么避免再犯"
高效使用 AI 写代码的经验
1. 先给上下文,再提需求
❌ "写一个用户注册接口"
✅ "我的项目用 FastAPI + SQLAlchemy + PostgreSQL,
已有 User 模型。请写一个用户注册接口,
要求校验邮箱格式、密码强度,用 bcrypt 加密"
2. 代码改动要指定范围
❌ "优化一下这个项目"
✅ "只优化 utils.py 中的 parse_date 函数,
目前它处理不了 '2024年1月1日' 这种中文日期格式"
3. 让 AI 先解释再动手
"先解释这段代码的作用,确认你理解正确后再修改"
→ 避免 AI 误解意图导致改错
4. 要求输出完整可运行的代码
"输出完整文件,不要省略任何部分,不要用 '...' 代替"
→ 避免得到残缺代码
7.7 动手练习
练习1:代码生成
为你最常用的编程语言设计一个”代码生成万能模板”,包含功能需求、技术约束、代码规范、输出要求。
练习2:调试模板
设计一个”万能调试提示词”,要求能覆盖不同语言和错误类型。
练习3:开发工作流
设计一条”需求分析 → 方案设计 → 代码实现 → 测试验证”的提示词链。
本章小结
✅ 代码生成:功能需求 + 技术约束 + 代码规范 = 高质量代码
✅ 代码审查:多角度表格化输出,方便逐条跟进
✅ Bug调试:完整堆栈 + 相关代码 + 环境信息
✅ 代码重构:明确目标,保持接口不变
✅ Function Calling:让 AI 不只动嘴还能动手
✅ 开发工作流:先给上下文,指定范围,要求完整输出
下一步 → 08_提示词模板与框架.md