Cloudflare 的 OAuth 2.1 Provider Framework 项目通过与 Claude 结对编程完成,展示了 AI 在软件开发中的潜力与局限性。关键点包括:
-
高质量 Prompt 是关键:首个 Prompt 包含 130 行示例代码、明确的技术栈(TypeScript、Cloudflare Workers)和安全要求(如 Token 哈希存储),帮助 AI 精准理解任务。
-
小步迭代:项目从单一文件开始,通过多轮反馈逐步完善,体现了人机协作的渐进式开发。
-
AI 的局限性:
- 环境感知不足:如误用 Node.js 的 crypto 库,需人类指出使用 WebCrypto。
- 安全细节需明确:AI 不会主动考虑所有安全隐患,需人类明确要求。
- 偶尔的"幻觉":AI 可能声称已修复问题,但代码未变。
- 过度工程化:如引入不必要的"备份密钥",增加复杂性。
-
人类的核心作用:资深工程师通过经验优化设计(如改进 Refresh Token 的实用性),确保代码适应现实场景。
-
高效人机分工:AI 负责代码生成,人类负责架构设计、审查和关键决策。
AI 的局限性:那些需要"人类出手"的时刻
这其中的人和 AI 结对过程也并非一帆风顺。你可以清晰的看到
AI 的局限性:
- 环境感知不足:除了错用 Node.js API,AI 对特定平台的特性(如 Workers KV 的 list() 功能)也需要人类提醒才能有效利用。
- 安全细节需要明确:你需要明确告诉它"所有敏感信息都要哈希存储",它不会主动思考所有潜在的安全隐患。
- 偶尔的"幻觉"和固执:有好几次,Kenton 指出问题后,AI 声称已经修改,但实际上代码并没有变化,最终需要工程师手动修复。 4。** 过度工程化的倾向**:在实现加密功能时,AI 引入了一个不必要的"备份密钥"概念,增加了复杂性,被 Kenton 要求移除。 有时,对于一些简单的样式修改或代码整理,Kenton 也不得不亲自上手,因为通过 Prompt 反复纠正的效率反而更低。这提醒我们,也不要太过于依赖 AI,有时候手动修改可能还更高效!
AI 结对编程最佳实践
- 提供详细上下文:包含代码示例、技术栈和明确目标,避免模糊指令。
- 明确平台特性:如 Cloudflare Workers 的 WebCrypto 或 KV 功能,防止 AI 使用错误 API。
- 小步迭代:将任务拆分为小块,逐步优化。
- 具体反馈:明确指出问题及修改方向,如"用 WebCrypto 替换 Node.js crypto"。
- 人机分工:AI 处理代码生成,人类把关架构和质量。
- 记录 Prompt:将 Prompt 存入提交历史,作为文档和学习素材。
- 适时手动干预:当 AI 在简单任务上效率低下时,直接手动修改。
关于"查看键盘快捷键,按下问号"
你的输入提到"按下问号查看键盘快捷键",可能是在某个工具或界面(如 GitHub 或 IDE)中查看快捷键的提示。如果你在使用相关工具(如 GitHub 查看 Cloudflare 的提交记录),可以尝试以下:
-
GitHub 快捷键:在 GitHub 页面按 ? 调出快捷键列表,常见功能包括:
- t:快速搜索文件。
- l:跳转到指定行。
- /:聚焦搜索栏。
-
IDE 快捷键:如果你在 VS Code 或其他 IDE 查看代码,按 Ctrl + K, Ctrl + S(Windows)或 Cmd + K, Cmd + S(Mac)查看快捷键设置。
-
Claude 或其他 AI 工具:如果你使用 Claude 或类似工具,快捷键可能因平台而异,建议查看官方文档或界面提示。
如果你的"按下问号"指的是其他具体工具或场景,请提供更多上下文,我可以帮你查找相关快捷键或操作方式!
补充信息
-
项目链接:Cloudflare 的 OAuth 2.1 Provider Framework 仓库 GitHub 包含完整提交历史,可查看 Prompt 和代码演变。
-
推荐阅读:《I Read All Of Cloudflare's Claude-Generated Commits》 链接,提供更详细的分析。
-
AI 依赖性提醒:如宝玉(@dotey)在 X 帖子中提到,过度依赖 AI 可能导致"懒惰编程",建议平衡 AI 使用与手动编码能力。
原文宝玉:x.com/dotey/statu...