共计 1991 个字符,预计需要花费 5 分钟才能阅读完成。
开篇:原始 Prompt 的痛点清单
直接使用简单 Prompt 让 ChatGPT 生成代码时,开发者常遇到这些典型问题:

- 异常处理缺失 :生成的代码往往缺乏健壮的错误捕获逻辑
- 规范不一致 :命名风格、注释标准与团队现有代码库冲突
- 过度简化 :忽略边界条件(如空值、并发场景)
- 技术债隐患 :出现重复代码块或违反 SOLID 原则的设计
- 上下文断裂 :多轮对话后丢失前期约定的约束条件
系统化 Prompt 设计框架
1. 分层 Prompt 结构
# 需求描述层(WHAT)"""
需要实现 Python 版的用户服务模块,包含:- 通过用户 ID 查询详情(包含数据库查询)- 支持邮箱格式校验
- 遵循 RESTful 风格返回
"""# 约束条件层(HOW)"""
约束:1. 使用 SQLAlchemy 2.0 ORM
2. 错误码按 Google API 风格设计
3. 添加 pydantic 输入验证
4. 包含完整的类型注解
5. 符合 PEP8 规范
"""# 输出格式层(FORMAT)"""
请输出:1. 完整代码文件(含 import)2. 配套的 pytest 单元测试
3. 关键逻辑的 ASCII 流程图
"""
2. Clean Code 注入技巧
通过 Prompt 明确要求 AI 实现以下原则:
-
单一职责 :
每个函数不超过 20 行代码 模块按功能拆分为 query_service/validation_service -
开闭原则 :
使用抽象类定义数据访问接口 通过依赖注入支持多数据库
实战示例:用户管理模块
优化前后的 Prompt 对比
基础 Prompt:
写一个 Python 函数查询用户信息
进阶 Prompt:
"""
实现 UserQueryService 类要求:1. 方法 get_user_by_id(id: int) -> UserDTO
2. 使用 async/await 语法
3. 包含以下异常处理:- 用户不存在 (404)
- 数据库超时 (503)
4. 添加缓存层(Redis)5. 输出包含 100% 覆盖率的测试用例
"""
生成代码关键片段
# 生成的核心逻辑(ChatGPT 输出节选)class UserQueryService:
def __init__(self, db_session: AsyncSession, redis: Redis):
self.db = db_session
self.cache = redis
async def get_user_by_id(self, user_id: int) -> UserDTO:
cache_key = f"user:{user_id}"
if cached := await self.cache.get(cache_key):
return UserDTO.parse_raw(cached)
stmt = select(User).where(User.id == user_id)
result = await self.db.execute(stmt)
if not (user := result.scalar_one_or_none()):
raise HTTPException(status_code=404)
user_dto = UserDTO.from_orm(user)
await self.cache.set(cache_key, user_dto.json())
return user_dto
人工优化 diff
- stmt = select(User).where(User.id == user_id)
+ stmt = select(
+ User.id,
+ User.name,
+ User.email # 明确指定字段避免 SELECT *
+ ).where(User.id == user_id)
- await self.cache.set(cache_key, user_dto.json())
+ await self.cache.set(
+ cache_key,
+ user_dto.json(),
+ ex=300 # 添加 TTL 防止脏数据
+ )
生产级落地实践
安全扫描集成
配置 Semgrep 规则检测 AI 生成代码:
rules:
- id: ai-generated-code-check
patterns:
- pattern: "# Generated by ChatGPT"
message: "AI 生成代码需要人工复核"
severity: WARNING
版本控制策略
git commit -m "feat(user): add query service [AI-GENERATED]"
避坑指南
识别幻觉代码 :
- 检查是否存在虚构的 API(如不存在的 Python 方法
dict.get_or_raise()) - 验证引用的库版本是否支持所示语法
依赖冲突处理 :
请在 Prompt 中声明:"当前环境:Python3.10, SQLAlchemy==2.0.15"
终极思考
当 AI 承担 80% 的基础编码工作时,开发者应该:
- 强化领域建模能力
- 精通代码质量门禁设计
- 转型为 AI 训练师(Prompt 工程师)
- 聚焦非功能性需求(性能 / 安全)
真正的价值将体现在: 用 AI 放大创造力,而非替代思考
正文完
