做模型对比验证的开发者,可以用leadhi.cn一站接入多个主流模型,在编程提效场景下做横向测试比较方便。
 

写在前面

用ChatGPT辅助编程已经不是新鲜事,但用得好和用得差之间的差距非常大。有人用它十分钟搞定半天的活,有人跟它聊了半小时拿到一堆跑不通的代码。

区别在哪?提示词的质量。

最近把实测过的一些编程场景提示词模板整理出来,覆盖写代码、调试、CodeReview、测试用例几个高频场景。语言是死的,方法是活的,掌握这个方法同理到C++、Java、Python、前端都适用。


模板一:写代码——角色加需求加约束

很多人裸问"帮我写一个XXX功能",拿到的结果要么太通用,要么跑不通。ChatGPT生成代码的能力完全取决于输入提示的质量——输入提示越详细越好。

有效的模板结构是三段式:

先给角色:"假设你是一个非常有经验的程序开发者/领域专家"。这一步是必须的,大模型通过概率推导生成内容,如果你没告诉它"你是领域专家",它会在低质量的推导中消耗较多的计算概率;反之它会丢弃更多低质量的分支逻辑。

再给需求:具体描述你要实现什么功能,输入是什么,输出是什么。

最后给约束:指定编程语言版本、框架、代码风格、命名规范等。ChatGPT可以生成Python、Java、JavaScript、C/C++等多种语言的代码,训练数据越丰富的语言生成质量越高。

一个实际的写法:"你是一位资深Python开发工程师。请编写一个函数,功能是从HTTP访问日志中解析出每个状态码的出现次数。要求使用标准库,不依赖第三方包,包含异常处理,函数和变量命名遵循PEP8规范。"

比起裸问,这种写法输出的代码质量能高一个档次。


模板二:调试——完整上下文加错误信息

调试是ChatGPT最实用的编程场景之一。但很多人只发一句"我的代码报错了"就等着AI给答案,结果拿到的建议牛头不对马嘴。

有效的调试模板需要包含三个要素:

第一,清晰描述问题。包括错误消息、异常情况以及导致问题的具体情境。

第二,附上相关代码。把出问题的代码段完整贴上去,ChatGPT可以帮助识别可能的错误或改进。

第三,说明操作步骤。你在什么环境下做了什么操作触发了这个错误。

一个实际的写法:"我运行了一个Flask应用后始终无法启动后端服务。以下是我models.py、app.py和requirements.txt三个文件的代码以及文件路径。浏览器控制台报错信息是:{粘贴报错}。请结合我的代码和报错信息逐步检查问题所在。"

跨会话发送更多代码信息也是一个实用技巧。当代码文件过长时,可以要求ChatGPT等待多轮文本发送完毕之后再整体分析,绕过单轮对话的字数限制。

多轮对话后还要定期重新发送相关代码段落,避免ChatGPT遗忘之前的代码结构。


模板三:CodeReview——代码加期望加对比

让ChatGPT帮你审查代码,效果比你想象的好。它可以建议调试步骤如打印调试语句、检查变量值、查看日志等,还能推荐调试工具和资源。

模板结构:

"请根据以下需求检查我的代码是否有误或提供优化建议。以下是我的原始代码:{代码}。我的需求是:{需求描述}。"

如果ChatGPT给的改进方案你不满意,可以进一步约束:"我不希望用户输入错误之后直接报错。若用户输入为空值,请在前端处理为0;若用户输入为非整数,请在前端取整。"

这种逐步细化的方式比一次性把所有要求塞进一个提示词效果更好。


模板四:Think step by step——分步思考

这是提升ChatGPT面对复杂任务解决能力的核心技巧。

就像实际项目开发一样,工程师在正式编码前需要先确认需求并做好系统设计。跟ChatGPT协作也是同样的道理。

模板写法:"以下是我的需求{需求描述}。你能否理解以上我提出的所有需求?如果可以请输出实现方法和步骤,暂时不需要写出全部代码。"

在需求阶段插入确认步骤,不要在输入需求后让ChatGPT立刻生成代码。先输出操作步骤和实现路径,留给模型足够的时间思考。确认了实现步骤也就明确了实现预期。


模板五:代码转换和文档生成

ChatGPT可以将代码从一种语言转换为另一种语言。需要注意的是,转换结果对外部库和服务的依赖程度会影响准确性。涉及第三方库的代码,建议同时提供目标语言对应库的文档作为上下文。

文档生成也很实用。你可以把一段没有注释的代码扔给ChatGPT,要求它添加逐行注释。它甚至能识别代码使用的库并给出准确的说明。


几个实操经验

第一,分步构建。不要试图一次性解决所有问题。从主干到枝端,从框架到细节,通过循序渐进的提问引导ChatGPT分步完成任务。

第二,把报错信息完整贴给ChatGPT。不要自己过滤后再发,完整的服务端错误日志、命令行报错、控制台报错一起给。信息越完整,诊断越准。

第三,对于ChatGPT无法解决的问题,可以先在搜索引擎或开发社区找到方法,再作为上下文提供给ChatGPT让它参考。

第四,ChatGPT的代码并不总是能直接用。它可能犯语法错误、遗漏依赖项、使用过时的库版本。生成代码后一定要实际运行验证,不能盲信。


趋势判断

ChatGPT在编程场景下的定位已经很清楚:它降低了开发的准入门槛,提升了使用者的开发效率,但并没有真正降低软件工程的门槛。

向AI分步传递需求的过程,背后靠的是使用者对项目深度理解后的精确业务抽象和步骤拆解。而这恰恰是最困难的地方。

提示词质量决定输出质量,这个规律在编程场景下尤其明显。把这几套模板用熟了,效率提升是实实在在的。

工具在进化,但理解和判断的能力是自己的。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐