与ChatGPT Codex结对编程的10个宝贵经验分享

9次阅读
没有评论

共计 3289 个字符,预计需要花费 9 分钟才能阅读完成。

上周,我与 ChatGPT Codex 进行了大约 50 到 60 小时的结对编程,并逐渐熟悉了它的工作方式。

结对编程这一术语虽然已有多年历史,但在编码 AI 的加入下,它有了新的含义。传统上,结对编程指的是两个或更多程序员在同一时间共同编写代码。然而,随着 AI 的介入,现在它也可以指人类与 AI 共同编程。这正是我所尝试的。

我首先通过每月 20 美元的 ChatGPT Plus 进行了大约 12 到 15 小时的编程,期间因资源过度使用被中断了三次。随后,我通过每月 200 美元的 ChatGPT Pro 进行了大约 45 小时的编程,期间没有被中断过一次。

最终,我完成了核心产品的主要功能升级,并为该核心产品创建了四个附加产品。这是我经历过的最具生产力的开发阶段。

但过程并非一帆风顺。我也遇到了一些困难和挑战。AI 的幻觉和误用也影响到了我。但我学到了很多。在这篇文章中,我将分享我学到的最有价值的经验。

好的,现在你已经了解了这个工具的潜力,接下来让我们看看一些技巧和技术。如果你一直读到文章的最后,你甚至还会得到一个额外的提示。

1. 避免使用 PRD 和规范驱动的开发

这将会引起很大争议,因为使用产品需求文档(PRD)和规范几乎是基于 AI 编码的黄金标准推荐最佳实践。

但根据我的经验,使用 PRD 和规范驱动的开发带来的问题比它解决的要多。我并不是说不应该构建 PRD。对你计划构建的内容有一个清晰的了解总是好的。但不要一次性将所有内容都交给 AI。

从根本上说,AI 会根据你的要求去执行任务。但如果你的 PRD 不完整,或者它误解了一个小指令,或者由于使用一组庞大的指令而导致的其他潜在问题,一切都会迅速失控。

测试一个庞大的创建并确保所有部分协同工作也非常困难,尤其是当它们同时出现时。

那么,应该如何做呢?接下来就是 …

2. 逐步构建

在我的结对编程冲刺中,我尝试了上述技术三四次,但都没有成功。然后,我决定逐步构建。这取得了巨大的成功。

我最近的项目涉及一个网站仪表板的用户界面,以及实现新程序独特价值主张的业务逻辑。

我首先描述了所需的用户界面元素。我非常小心地告诉 AI,我不希望这些元素被连接起来,或者启用它们的功能。这意味着如果有一个复选框选项和一个保存设置按钮,我不希望 AI 保存或恢复该复选框的设置。我也不希望 AI 使用复选框的值来控制它最终将控制的内容。

起初,AI 添加的 UI 元素位置非常不合理。这没关系。我让 AI 添加了所有需要的元素,但没有担心外观。如果你在跟踪,这意味着没有在外观、保存 / 恢复或主要功能上进行工作。

一旦大部分所需的元素出现在屏幕上,我指示 AI 移动、样式化和定位这些元素。这是我从 AI 中获得的最大价值,因为这主要是 CSS。我非常不喜欢 CSS。通常需要尝试五次或十次才能让 AI 听从,但最终一切都达到了我想要的位置。

然后,只有在那时,我才开始处理功能。首先,这是基于用户输入使项目出现或消失所需的本地 JavaScript 代码。例如,只有在“将 RSL 添加到 RSS 订阅”按钮被选中时,这组子复选框才会出现在我的 AI 机器人管理器中。

与 ChatGPT Codex 结对编程的 10 个宝贵经验分享

最后,一旦 UI 布局正确且 JavaScript 交互正常工作,我才让 AI 开始处理核心功能。

这个过程使整个构建更加可控,结果也更为健壮、快速且非常实用。

3. AI 会迅速犯大错误

AI 能够非常快速地完成大量工作。我展示了如何让 Codex 帮助我在四天内完成了四年的产品开发。

但 AI 创建的速度有多快,它们破坏的速度就有多快。一个格式错误(或被误解)的提示可能会摧毁你的整个代码库。这也是为什么建议进行小的、逐步的更改,而不是让 AI 进行大的改动。大的改动可能会导致非常快速的失败。

当然,定期备份或检查你的更改,以便可以回滚。

4. 使用撤销按钮

Codex 有一个撤销按钮。它会撤销 AI 对你刚刚给出的提示所采取的所有操作。那个撤销按钮是你的朋友。需要时随时调用它。

5. 不要让 AI 让你感到内疚

Codex 似乎总是在你不应该的时候催促你添加业务逻辑。不要让它让你感到内疚而去添加它。

一旦 Codex 认为它理解了你在构建什么,它就会开始建议添加功能。不要添加它们,即使这很诱人。大多数时候,Codex 并不真正知道如何使新功能很好地融入你正在构建的内容。

也就是说,一定要记下这些建议。随着你的产品构建的成熟,你可以仔细指导 Codex 如何将其中一些添加到最终产品中。

6. 使用 AGENTS.md

AGENTS.md 是一个标准文件,许多编码 AI 使用它为任何给定项目提供标准化指令。我的文件位于主项目的根目录中。它为 AI 提供了很多指导,因此我不需要在每次运行时特别指示 AI。

以下是一个标准化指令中包含的内容示例:“永远不要修改库目录中的任何文件。这些是外部创建的软件库,必须可以在不担心自定义代码被覆盖的情况下更新它们的新版本。”

这告诉 AI,库目录中的文件可能会更改,它应该避免修改这些目录中的代码,因为它们本质上是系统服务。由于它在 AGENTS.md 文件中,我不需要在每次会话开始时告诉它。

7. 使用截图

不要犹豫,多使用截图。我拍摄截图并用箭头指出我希望 AI 注意的区域。AI 有时似乎难以根据描述想象出情况,但一旦我给它一个截图,它就“明白了”。

有时,如果我在会话中,AI 似乎遗漏了我希望它做的某些事情,我只需拍摄截图,将其粘贴到 VS Code 中的 Codex 聊天中,并用“这个”提示它。

8. 给 AI 提供 HTML 和 CSS

另一种帮助 AI 的方法是,在浏览器检查器中打开一个网页,从检查器中复制 HTML,并将其粘贴到聊天会话中。如果 AI 在识别正确的 CSS 选择器以样式化网页时遇到困难,这尤其有帮助。

9. 告诉 Codex 记住会话数据

你会用完会话空间,尤其是如果你一直在给它大的错误转储或源代码。当看起来你已经进行了一段时间或者你在聊天窗口中进行了相当大的诊断转储时,告诉 AI 给你足够的信息,以便你可以将其传递到下一个会话。

以下是我使用的提示:

_我想开始一个新的会话来清除上下文窗口。但我希望你能记住我们在这里讨论的各个方面,以便你可以在新会话中引用它。你能提供一些我可以从这次会话剪切并粘贴到下次会话的内容吗?这可以让你快速了解情况。想象一下,这就像医院里换班时的班次结束报告或病人交接。_

当它给出结果时,我复制它。然后,我开始一个新的会话,并将交接信息粘贴到新会话中。这是一种快速让 AI 在会话之间了解情况的方法。

10. 告诉 Codex 重构它的大文件

Codex 非常喜欢将所有代码转储到一个或两个大文件中。Yes, if you’ve already created a bunch of files and folders, Codex will use them. But if it’s creating new code, it likes to put everything in one place.

But you can tell Codex to refactor its code. For example, it likes to inline JavaScript and CSS into the middle of PHP files, which often bloats those files. I tell Codex to extract the JavaScript and put it into .js files in the js folder. I also tell it to do the same for CSS. As a result, all three languages become more maintainable.

You can also do this for logically grouped functions. Instead of putting all the functions in one big file, give Codex categorized files and tell it to put the functions related to each category into its associated file.

额外提示:为可维护性编写代码

Codex 不会自然地编写人类可维护的代码。但如果你告诉 AI 格式化它并添加注释,或者如何构建代码,它会遵守。它还会编写代码的良好解释,并给你总结和参考信息。但你需要主动要求它。

正文完
 0
admin-gah
版权声明:本文于2025-09-22转载自Zdnet,共计3289字。
转载提示:此文章非本站原创文章,若需转载请联系原作者获得转载授权。
评论(没有评论)
验证码