发帖
 找回密码
 立即注册
搜索
1 0 0
技术交流 93 1 3 天前

TL

规划与流程:

  • 先写计划,让AI先评论,再编码
  • 使用编辑测试循环:编写失败测试→AI 修复→重复
  • 频繁提交小的更改以获得可读的差异

快捷工程:

  • 保持提示简短,具体上下文膨胀会降低准确性
  • 在编写代码之前要求逐步推理
  • 使用文件引用(@path/file.rs:42-88)而不是代码转储

上下文管理:

  • 在重大更改后重新索引你的项目以避免出现幻觉
  • 使用 gitingest.com 等工具获取代码库摘要
  • 使用 Context7 MCP 与最新文档保持同步
  • 像对待初级开发人员一样对待 AI 输出,PR 审查一切

无效的方法:

  • 将整个代码库转储到提示中
  • 期望人工智能理解隐含的要求
  • 无需审查即可将安全关键代码托付给人工智能

1. 从书面计划开始(先认真打好基础)

让你的人工智能为你正在构建的功能起草一份Markdown 计划。然后让它变得更好:

  1. 询问有关边缘情况的澄清问题
  2. 让其批评自己的计划是否存在漏洞
  3. 重新生成改进版本

将最终计划保存为 instructions.md,并在每次提示中引用。仅此一步就能避免 80% 的“AI 中途出错”的情况。

真实示例:

Write a plan for adding rate limiting to our API. Include:
- Which endpoints need protection
- Storage mechanism for rate data
- Error responses and status codes
- Integration points with existing middleware

Now critique this plan. What did you miss?

2. 掌握编辑-测试循环

这是 TDD,但由 AI 来实现:

  1. 让人工智能编写一个能够准确捕捉你想要的内容的失败测试
  2. 自己检查测试——确保测试正确的行为
  3. 然后告诉人工智能:“让这个测试通过”
  4. 让人工智能进行迭代——它可以自动运行测试并修复故障

关键在于实施前审查测试。糟糕的测试会导致代码无法满足要求。


3. 要求逐步推理

将其添加到你的提示中:

Explain your approach step-by-step before writing any code.

你可以在错误的假设变成错误代码之前将其捕捉到。能够“自发思考”的人工智能模型会减少犯愚蠢的错误。


4. 不要抛弃上下文关联

大型项目会分散 AI 的注意力。解决方法如下:

使用 gitingest.com 获取代码库摘要

  1. 前往 gitingest.com
  2. 输入你的 repo URL(或将任何 GitHub URL 中的“github.com”替换为“gitingest.com”)
  3. 下载生成的文本摘要
  4. 引用此文件而不是复制粘贴文件

不要这么给prompt:**将 10 个文件粘贴到提示中
而是这样: “请参阅附件 codebase_summary.txt 了解项目结构”

对于文档:使用 Context7 MCP 或 Live Docs

Context7 MCP 通过显示文档的“最新页面”使 AI 与最新文档保持同步。

什么时候用:当你的文档频繁更改时,请参考 MCP 连接,而不是每次都粘贴过时的片段。


5.控制版本是你的安全壁垒

  • 颗粒度提交,确保 git add -p差异可读
  • 永远不要让未提交的更改堆积起来:干净的 git 状态可以更轻松地隔离 AI 引入的错误并干净地回滚
  • 使用有意义的提交信息:它们帮助 AI 理解变化背景

6. 保持Prompt的精准

错误: “这是我的整个代码库。为什么身份验证不起作用?”

正确: “当 JWT 格式错误时,@src/auth.rs第 85 行会出现混乱。请修复此问题并添加适当的错误处理。”None

具体的问题有具体的解决方案。模糊的问题会产生幻觉。

在提示中使用代码术语:引用代码库中的精确标识符,而不是通用的业务术语。例如,使用“ createOrder()and”processRefund()而不是“下订单”或“退款”,或者使用“use”UserEntity而不是“账户”。这种精确性有助于 AI 应用正确的抽象,并避免领域语言和代码之间的不匹配。


7. 重大变更

如果你使用带有项目索引的 AI 工具,请在进行重大重构后重建索引。过时的索引是 AI“找不到”确实存在的函数的原因。

大多数工具都会自动索引,但当出现问题时会强制刷新。


8. 使用文件引用,而不是复制粘贴

大多数 AI 编辑器都支持类似 的引用 @src/database.rs。使用它们代替粘贴代码块。

好处:

  • AI 看到的是当前文件状态,而不是过时的快照
  • 更少的 token 使用量 = 更高的准确率
  • 减少提示混乱

**注意:**语法因工具而异(Forge使用 @,有些使用 #,等等)


9. AI编写测试,你编写规范

告诉人工智能到底要测试什么:

For the new `validate_email` function, write tests for:
- Valid email formats (basic cases)
- Invalid formats (no @, multiple @, empty string)
- Edge cases (very long domains, unicode characters)
- Return value format (should be Result<(), ValidationError>)

一旦你指定了案例,AI 就擅长生成测试样板。


10. 使用诊断报告

当遇到困难时,要求系统地分解:

Generate a diagnostic report:
1. List all files modified in our last session
2. Explain the role of each file in the current feature
3. Identify why the current error is occurring
4. Propose 3 different debugging approaches

这迫使人工智能系统地思考,而不是猜测和检查。


11. 设置清晰的样式指南

给你的AI一个简短的系统提示:

Code style rules:
- Use explicit error handling, no unwraps in production code
- Include docstrings for public functions
- Prefer composition over inheritance
- Keep functions under 50 lines
- Use `pretty_assertions` in test
- Be explicit about lifetimes in Rust
- Use `anyhow::Result` for error handling in services and repositories.
- Create domain errors using `thiserror`.
- Never implement `From` for converting domain errors, manually convert them

一致的规则=一致的代码质量。


12. 像高级工程师

将每一次 AI 变化都视为初级开发人员的 PR:

安全审查:

  • 检查注入漏洞
  • 验证输入有效性
  • 寻找硬编码的秘密

绩效考核:

  • 观察 N+1 查询
  • 检查算法复杂度
  • 查找不必要的分配

正确性审查:

  • 手动测试边缘情况
  • 验证错误处理
  • 检查是否存在偏差一错误

AI 很聪明,但并非明智。你的经验很重要。


为什么行不通

“Magic Prompt”错误

不存在完美的prompt能让 AI 永不犯错。更好的工作流程胜过更好的提示。

期待读

人工智能无法推断你未提出的需求。“使其投入生产”如果没有具体细节,就毫无意义。

信任人工智能的架构决策

AI 擅长实现你的设计,但在高级系统设计方面却很糟糕。你负责架构,AI 负责实现。

忽略特定领域上下文

除非你告知,否则 AI 不会知道你的业务逻辑、部署约束或团队约定。


争议观点:人工智能结对编程比人类结对编程

对于大多数实施任务。

人工智能不会疲倦,没有自我,不会争论代码风格,也不会评判你的谷歌搜索习惯。它就像一个拥有无限耐心和完美记忆力的初级开发人员。

但它也无法捕捉逻辑错误,无法理解业务背景,也无法抵制糟糕的想法。棘手的事情还是需要人类来解决。


最终现实检验

AI 编程工具可以显著提升生产力,但前提是你必须系统地使用它们。那些获得巨大收益的工程师并非依靠神奇的提示,而是依靠规范的工作流程。

首先制定计划,测试一切,像你的生产系统依赖它一样进行审查(因为确实如此),并记住:人工智能是你的实习生,而不是你的架构师。

编码的未来并非人类与人工智能的对决,而是拥有人工智能的人类与没有人工智能的人类的对决。请明智地选择你的阵营。

──── 0人觉得很赞 ────

使用道具 举报

结对编程确实效率更高,不过还是得掌握技巧,不然就跟倆傻子一起工作一样了哈哈哈哈哈
您需要登录后才可以回帖 立即登录
高级模式