AI 辅助编码最佳实践

掌握这些技巧,从 AI 提示词中获得最佳效果

有效提示工程的核心原则

以下是一些核心原则,可以帮助你优化与 AI 的互动过程:

1

清晰性优于简洁性

虽然简洁的提示词很重要,但清晰度更为关键。不要害怕使用较长的提示词,如果它能更准确地传达你的需求

"AI 模型不会因为你的提示词太详细而感到不耐烦,但它可能会因为提示词不明确而产生错误的输出。"
示例:

不要仅仅说"创建一个登录表单",而应该说 "创建一个响应式 React 登录表单,使用 Formik 进行表单状态管理,包含邮箱和密码字段,在提交前进行字段验证,并在提交成功后显示确认消息。"

2

渐进式细化

从高层次的需求开始,通过多轮对话逐步细化和完善结果,而不是试图在一个提示词中解决所有问题。

渐进式细化工作流
  1. 先请说"设计一个电子商务网站的基本架构"
  2. 然后基于生成的架构,细化请求: "为这个架构中的用户认证服务设计更详细的组。"
  3. 最后具体到实现: "为用户认证服务实现注册功能的具体代码。"
3

提供上下文和约束

提供足够的背景信息和明确的约束条件,包括技术栈、性能要求、代码风格等。

示例上下文信息:
  • 项目技术栈: "这是一个基于 Vue 3, Pinia 和 TypeScript 的项目。"
  • 代码风格: "我们使用 Airbnb 和 ESLint 配置和 Prettier。"
  • 性能要求: "这个组件需要针对移动设备优化,在低端设备上也能快速渲染。"
  • 存在的依赖: "我们已经使用 Axios 作为 HTTP 客户端和 Lodash 作为工具。"
4

使用特定的角色提示

在提示词中指定 AI 应该扮演的角色,这可以帮助 AI 生成更符合特定专业视角的回答。

角色示例
  • "请作为一名经验丰富的安全工程师,审查以下认证代码中的潜在安全漏洞。"
  • "请以一名前端架构师的视角,评估这个组件结构的可维护性。"
  • "请作为一名性能优化专家,分析以下查询代码的效率。"
5

结合人工审查 AI 生成

将 AI 视为协作工具,而不是完全替代人工工作。始终对 AI 生成的内容进行审查和调整。

最佳实践工作流
  1. 使用 AI 生成初始代码或文档
  2. 人工审查生成的内容,标记问题或需要改进的地方
  3. 提出具体的改进建议,要求 AI 修改特定部分
  4. 继续迭代,直到结果满足需求
  5. 最终进行完整的人工审查和测试

不同阶段的最佳实践

需求分析阶段

💡 提示

使用 AI 辅助理清需求的关键是让它帮助你提出你可能忽略的问题,而不仅仅是记录已知的需求。

设计阶段

💡 提示

在设计阶段,使用 AI 来探索多种可能的解决方案,而不是立即锁定一种方案。

开发阶段

💡 提示

在编码阶段,最有效的提示是使用 AI 解决具体、有边界的问题,而不是生成整个系统的代码。

测试阶段

💡 提示

AI 在生成测试用例和测试策略方面非常有效,尤其是考虑各种边缘情况。

文档阶段

💡 提示

使用 AI 为代码和系统生成文档可以大大提高效率,但记得始终审查和调整生成的内容。

实用 AI 辅助工作流程

以下是一个实用的 AI 辅助开发工作流程,将上述最佳实践整合到日常开发中。

需求清晰化
探索设计方案
代码生成
审查与优化
测试与文档
  1. 需求清晰化
    • 使用问题探索模板提问,确保需求完整。
    • 要求 AI 将非正式需求转换为结构化规范。
    • 使用 AI 创建用户故事和验收标准。
  2. 探索设计方案
    • 要求 AI 提出多种可能的解决方案。
    • 与 AI 讨论各种方案的优缺点。
    • 使用 AI 绘制系统架构和组件关系图。
  3. 代码生成
    • 使用 AI 生成组件和功能的基本框架。
    • 逐步细化和扩充 AI 生成的代码。
    • 始终审查生成的代码,确保符合项目标准。
  4. 审查与优化
    • 使用 AI 审查你编写的代码和 AI 生成的代码。
    • 请求 AI 提供性能和可维护性的改进建议。
    • 与 AI 讨论可能的安全问题和最佳实践。
  5. 测试与文档
    • 使用 AI 生成测试用例和测试代码。
    • 要求 AI 为代码添加高质量的注释和文档。
    • 生成用户指南和技术文档。
💡 记住

最有效的 AI 辅助工作流是迭代和交互式的。不要期望在一个提示词中解决所有问题,而是进行多轮对话,逐步完善结果。

避免的常见陷阱

1. 盲目接受 AI 生成的内容

始终对 AI 生成的代码和文档保持批判性思维,不要假设它总是正确的。

  • 审查生成的代码中的逻辑错误和安全问题。
  • 测试 AI 生成的代码,不要假设它能正常工作。
  • 验证 AI 声明的事实和最佳实践。

2. 过度依赖 AI 生成复杂功能

对于复杂的功能,使用 AI 来生成框架和指导,而不是完整的实现。

  • 将复杂功能分解为更小的、可管理的部分。
  • 使用 AI 生成每个部分的代码,然后手动集成。
  • 对于高度复杂或关键的系统组件,更多地依赖人工编码。

3. 忽略代码和文档的一致性

确保 AI 生成的内容与现有代码库和文档风格保持一致。

  • 在提示词中明确指定要遵循的代码风格和命名约定。
  • 要求 AI 遵循项目中已建立的模式和做法。
  • 与 AI 生成的代码与项目的风格指南进行对比检查。

4. 在提示词中缺乏具体细节

提供过于宽泛的提示词会导致 AI 生成泛泛的结果,或者在缺乏明确指导的情况下做出假设。

  • 始终包含技术栈、版本和重要依赖。
  • 明确说明性能、安全和可访问性要求。
  • 在可能的情况下提供示例或期望的输出格式。