使用Codeium进行代码重构时,提示词必须结构化编写:首先明确Python 3.11、pandas 2.2.2、pydantic v2.7的开发环境;接着采用三段式指令清晰描述依赖分析、纯函数化改造以及输出合规代码的要求;最后绑定Black格式化、嵌套深度不超过3层、函数体不超过45行等项目规范。

你希望Codeium生成的代码重构提示词,提交后能直接产出可运行、无语法错误、符合当前项目规范的代码,而无需反复调试、手动补全类型、再花十分钟调整缩进和空格——关键在于将重构意图拆解成Codeium能准确响应的结构化指令,同时绑定真实的上下文环境。
锁定重构目标并融入真实代码上下文
启动VS Code,确保待重构的Python文件已保存(例如data_processor.py),且光标位于需要改造的函数内部,或紧邻其上方空行。务必选中原始函数的完整定义——即包含def行、docstring和所有逻辑行的整个代码块。仅选择几行是不够的,因为Codeium若缺少函数签名或return语句,可能误判返回类型,最终生成的代码很可能无法通过mypy校验。
右键点击,选择“Codeium: Generate Text”,在弹出输入框后,第一句话必须明确当前环境:“你正在重构一个使用Python 3.11、依赖pandas 2.2.2和pydantic v2.7的ETL处理模块。”
这并非客套话。它能强制Codeium加载对应版本的类型推断规则——例如,pydantic v2.7要求BaseModel字段的默认值采用Field(default_factory=list)而非[]。这一点必须清晰说明,否则遗漏版本号,生成的语法可能直接无法运行。
采用三段式指令明确重构契约
环境声明之后,立即写入以下结构(标点、换行、空格均保持原样):
“请执行以下三步操作:
① 首先分析原函数中所有外部依赖调用(如pd.read_csv、requests.get),列出它们的返回类型与可能出现的异常;
② 然后将函数重构成纯函数:移除所有全局变量引用、将IO操作拆分为独立参数、利用typing.Union标注所有可为空的返回路径;
③ 最后输出完整重写后的函数代码,要求:保留原函数名、保持原有docstring不变、每行不超过90字符、禁用any类型、所有新引入的类必须携带__slots__。”
这三步不能合并。第一步确保Codeium不会凭空假设依赖行为;第二步彻底封死副作用泄漏的可能;第三步用硬性格式约束规避团队CI失败——例如之前一次重构,就因为使用了def process_data(...) -> dict:而被pre-commit拒绝,原因在于未写成Dict[str, Any]。
绑定项目级规范防止风格偏离
在指令末尾追加一行项目专属规则:
“本项目强制执行Black格式化,所有if/for块内嵌套深度≤3,函数体长度≤45行,若重构后超出限制,请自动拆分为helper函数并导出到同一模块。”
这句话必须写上。Codeium默认倾向于将所有逻辑塞进一个函数,而实际项目中,超过30行的函数就会被sonarqube标为“高复杂度”。加上这条限制,它会主动拆分解耦,而且拆分出的helper函数命名会带上_internal后缀——这也符合你们团队对私有函数的命名约定。
按下回车提交,Codeium输出的代码可直接复制进文件,无需再手动调整缩进、补充类型注解或删除调试用的print语句。
