目录

鲁软慧码 - 提示工程实战手册

欢迎开启智能编码新纪元!

鲁软慧码旨在成为您编程旅程中的得力伙伴,加速开发、提升代码质量、激发创新灵感。

要充分释放鲁软慧码的潜力,关键在于掌握有效的提示(Prompting)。这份手册将为您揭示编写高效提示的秘诀和实用技巧,并通过丰富的示例,助您快速从入门到精通。

为什么精通提示如此重要?

  • 精准结果: 清晰的提示 = 更符合预期的代码或解决方案。
  • 效率提升: 减少反复沟通和修改的时间,直达目标。
  • 解锁潜能: 探索助手的更多高级功能,应对复杂挑战。

一、编写高效提示的核心原则

掌握以下原则,让您与鲁软慧码的沟通事半功倍:

  1. 🎯 目标明确,意图清晰 (Be Clear & Specific)

    • 要做什么? 直接说明您想实现的功能、解决的问题或获得的信息。避免模糊不清的指令。
    • 坏例子: 帮我处理下数据。
    • 好例子: 帮我用 Python Pandas 读取名为 'sales_data.csv' 的文件,并计算 'amount' 列的总和。
  2. 🧩 提供充足上下文 (Provide Context)

    • 背景信息: 告知助手您正在使用的编程语言、框架、库、项目目标或特定约束。
    • 坏例子: 修复这个 bug。 (未提供代码和错误信息)
    • 好例子: 我在使用 React 和 Ant Design 开发一个表单。提交时,控制台报 'TypeError: Cannot read properties of undefined (reading 'validateFields')' 错误。这是相关的代码片段:[代码片段]。请分析原因并提供修复建议。
  3. ⚙️ 关注结果,而非过程 (Focus on the ‘What’, Not Just the ‘How’)

    • 描述期望: 侧重于您最终想要的功能或行为,让助手利用其知识库找到最佳实现方式。
    • 好例子: 创建一个 RESTful API 端点,用于获取用户信息,需要支持通过用户 ID 查询,并以 JSON 格式返回姓名和邮箱。 (而不是指定每一步数据库查询和序列化)
  4. 📐 指定输出格式 (Specify Output Format)

    • 明确要求: 如果您需要特定格式的输出(如 JSON、Markdown、带注释的代码、特定函数签名),请明确告知。
    • 好例子: 请将以下 Python 字典转换为 JSON 字符串,并确保格式化(缩进 4 个空格)。
    • 好例子: 为以下 JavaScript 函数生成 JSDoc 风格的文档注释。
  5. 🔁 迭代优化,逐步求精 (Iterate and Refine)

    • 持续沟通: 首次提示可能无法完美达成目标。根据助手的回应,逐步添加细节、澄清要求或调整方向。
    • 技巧: 从简单提示开始,如果结果不理想,尝试换种说法、补充约束或分解任务。

二、开发者专属提示技巧

针对编码场景,掌握这些技巧能让您的提示更专业、更高效:

  1. 指定语言/框架/库: 明确告知技术栈,如 用 Go 语言实现...在 Vue 3 中...使用 TensorFlow...
  2. 提供代码片段/错误信息: 对于调试、重构或解释请求,附上相关代码和完整错误日志至关重要。
  3. 设定约束条件: 提及性能要求(时间复杂度需为 O(n log n))、资源限制(内存占用需低于 100MB)、代码风格(遵循 PEP 8 规范)或库/API 版本(使用 requests 库 v2.x)。
  4. 要求解释和注释: 不仅要代码,更要理解。可以要求助手 解释这段代码的逻辑为关键部分添加注释
  5. 扮演特定角色: 让助手模拟专家视角。假设你是一位资深的 DevOps 工程师,为我设计一个 CI/CD 流水线...
  6. 使用否定约束: 明确告知不想要什么。...不要使用第三方库...避免使用递归...确保代码中不包含硬编码的密钥
  7. 分解复杂任务: 对于大型功能,将其拆分为小步骤,分阶段请求。第一步:设计数据库模式...第二步:编写后端 API...第三步:创建前端界面...

三、实战场景提示示例库

以下是各种常见开发场景的提示示例,助您快速上手:

1. 代码生成 (Code Generation)

  • 简单函数: 用 Python 编写一个函数,接收一个整数列表,返回列表中的最大值。
  • 带约束的函数: 用 JavaScript 编写一个函数 isValidEmail ,使用正则表达式验证邮箱格式是否有效,并返回布尔值。
  • 类/组件: 帮我用 React 创建一个名为 'UserProfileCard' 的函数组件,接收 'user' 对象(包含 name, avatarUrl, bio)作为 props,并展示这些信息。请使用 CSS Modules 进行样式设置。
  • API 端点: 使用 Node.js 和 Express 框架,编写一个 POST 请求的 API 端点 /api/products ,用于接收产品信息(name, price, description)并将其保存到 MongoDB 数据库(假设已有 Mongoose 模型 'Product')。
  • 配置文件: 为 Nginx 生成一个反向代理配置,将来自 https://www.google.com/search?q=myapp.example.com 的请求转发到本地运行在 http://localhost:3000 的应用。需要配置 SSL (证书路径为 /etc/letsencrypt/live/myapp.example.com/fullchain.pem)。

2. 代码解释与文档 (Explanation & Documentation)

  • 解释代码: 请详细解释以下 Python 代码片段的工作原理,特别是异步处理部分:[代码片段]
  • 生成注释: 为下面的 C++ 函数添加清晰的注释,说明其功能、参数和返回值:[函数代码]
  • 生成文档: 为这个 Go 模块生成 Markdown 格式的 API 文档,包含每个公共函数的使用示例。

3. 调试与错误修复 (Debugging & Error Fixing)

  • 分析错误: 运行这段 Java 代码时,抛出了 NullPointerException ,错误发生在第 42 行。这是相关代码:[代码片段] 和完整的堆栈跟踪:[堆栈跟踪]。请帮我分析可能的原因并提供修复方案。
  • 定位性能瓶颈: 我的 Python Web 应用在处理并发请求时响应缓慢。我怀疑是数据库查询效率低。请提供一些常见的 Flask + SQLAlchemy 应用性能优化建议,并指导我如何使用 profiling 工具定位瓶颈。
  • 逻辑错误: 这个 JavaScript 函数应该计算购物车总价,但结果总是偏低。这是函数代码:[代码片段] 和一组测试输入及预期输出:[测试数据]。请帮我找出逻辑错误。

4. 代码重构与优化 (Refactoring & Optimization)

  • 提高可读性: 以下 JavaScript 函数包含多层嵌套的 if-else 语句,难以阅读和维护。请将其重构为更清晰、更易于维护的版本,可以考虑使用策略模式或查找表。[代码片段]
  • 提升性能: 这段 Python 代码用于处理大型数据集,但效率较低。请分析并优化其性能,目标是将处理时间缩短 50% 以上,同时内存占用增加不超过 10%。[代码片段]
  • 应用设计模式: 将这个处理订单流程的类重构,应用“模板方法模式”,将通用的流程骨架固定下来,允许子类定制特定步骤。[类代码]
  • 代码现代化: 将这段使用旧版 jQuery 实现的交互逻辑,用现代原生 JavaScript (ES6+) 或 Vue.js 重写,并移除对 jQuery 的依赖。[代码片段]

5. 测试用例生成 (Test Case Generation)

  • 单元测试: 为以下 Python 函数 calculate_discount(price, percentage) 生成一组使用 Pytest 框架的单元测试用例,需要覆盖正常情况、边界值(0% 折扣,100% 折扣)和异常输入(负数价格、无效百分比)。
  • 集成测试场景: 为用户注册流程(涉及 API 调用、数据库写入、邮件发送)设计一套集成测试场景描述。
  • 边缘情况: 针对这个处理文件上传的函数,帮我思考可能导致失败的边缘测试用例(例如:超大文件、不支持的文件类型、并发上传冲突、磁盘空间不足)。

6. 学习与知识查询 (Learning & Knowledge Query)

  • 概念解释: 请用通俗易懂的语言解释什么是 RESTful API 的幂等性?并举例说明。
  • 语法查询: 在 C# 中, yield return 关键字是如何工作的?它与普通 return 有什么区别?
  • 最佳实践: 在 Go 语言中处理并发任务时,有哪些常见的最佳实践可以避免竞态条件?
  • 库/框架用法: 如何使用 'axios' 库在 JavaScript 中发送带 Authorization 请求头的 POST 请求?

四、迭代与进阶:让提示更强大

  • 从反馈中学习: 仔细阅读鲁软慧码的回应。如果结果不符预期,思考是哪里不够清晰或缺少了什么信息。
  • 尝试不同措辞: 同一个目标,换种表达方式可能会得到更好的结果。
  • 提供示例(Few-Shot Prompting): 如果您期望特定风格或格式,可以在提示中给出一两个简单示例,引导助手模仿。
    • 将以下文本转换为 JSON 格式。示例:'姓名:张三, 年龄:30' -> '{"name": "张三", "age": 30}'。现在转换:'城市:北京, 邮编:100000'
  • 逐步构建: 对于复杂任务,先让助手生成基础框架,再逐步要求添加具体功能或细节。

结语:实践是最好的老师

掌握提示工程就像学习一门新的编程语言,需要不断的实践和探索。鲁软慧码是您强大的工具,而您手中的“提示”就是驾驭这工具的方向盘。

大胆尝试,不断优化您的提问方式,您会惊讶地发现与 AI 协作的无限可能!

现在,就打开鲁软慧码,开始您的智能编码之旅吧!