分享
0130-一天600次提交,代码比以前更好
输入“/”快速插入内容
0130-一天600次提交,代码比以前更好
用户9970
用户9970
用户3733
用户3733
5月9日修改
0130:Peter Steinberger X The Pragmatic Engineer:一天600次提交,代码比以前更好
今天看到 Peter Steinberger 去了 The Pragmatic Engineer 的播客。
Peter Steinberger 创建了 PSPDF kit——一个被超过 10 亿设备使用的 PDF 框架,后来经历严重职业倦怠卖掉股份消失了 3 年。2024 年回归后,他用完全不同的方式创建了 Clawdbot,一周从 100 星涨到 3300 星。
这期播客总共录了将近两小时,Peter 谈到了 12 个有趣的观点:
1、一天 600 次提交,代码比以前更好。这听起来疯狂,但 Peter 说他现在不再阅读大部分代码了,写出的代码却比以前更好。以前他会对每个细节、每个空格花大量时间 bikeshedding,现在回头看觉得很蠢——客户根本看不到代码内部。
2、关闭循环是 AI 编码的最大秘密。AI 之所以擅长编码但在写作上表现一般,是因为代码可以验证——你可以编译、lint、执行、检查输出。如果你正确设计系统,就有了完美的循环。这就是为什么他让 AI 建一个纯 CLI 用于调试,然后让它自己迭代修复。
3、Code Reviews 已死,PR 应该叫 Prompt Requests。他对 prompts 的兴趣比代码更大,因为 prompts 给的信号更高——你是怎么得到这个解决方案的?问了什么?有多少引导?如果有人想要一个功能,他让他们写好 prompt,然后把代理指向这个 issue,它就会构建出来。
4、Codex 比 Claude Code 慢 10 倍,但几乎每次都对。Claude 会读三个文件然后就自信地开始创建代码,你必须引导它去读更多代码。而 Codex 会静静地读文件 10 分钟。如果你只在一个终端工作,这无法忍受。但 Peter 宁愿要一个不用告诉它做什么的东西。
5、MCP 是拐杖,CLI 更高效。MCP 最大的贡献是让公司重新思考开放更多 API。但模型真的很擅长用 bash。用 MCP 你不能过滤列表、不能链式调用、不能轻松构建脚本。用 CLI 可以用 jq 过滤出需要的东西。所以他建了 make-porter 把 MCP 转换成 CLI。
6、同时运行 5-10 个代理,像玩星际争霸。他设计一个新子系统,知道 Codex 需要 40 分钟构建,就移动到别的东西。这个在 cooking,那个在 cooking,然后回到这个。要保持心流状态,必须大规模并行化。他希望不用这样,但这是过渡期问题。
7、系统理解比语言能力更重要。他说"用 Go 做 CLI"——对 Go 一无所知。但有好的系统理解,就能发展出什么是对的什么是错的直觉。他能感受模型运行——prompt 时已经有预感会花多长时间,如果花太久,就知道哪里搞砸了。
8、心智负担比写代码更大。不写代码了,但脑力消耗更大,要同时管理多条并行工作线。他在脑子里不断切换:这个在 cooking,那个在 cooking,然后这个 cooking。像象棋大师同时下 20 盘棋。
9、公司可能精简到 30%。新世界需要有产品愿景的人,能够做所有事情,需要的人远少得多,但都是非常高能动性和高能力的人。这很可怕,经济上会导致一场灾难,很多人会在这个新世界里找不到位置。
10、AI 可以自己更新自己。你不用编辑配置,因为代理可以编辑它自己的配置。直接对 bot 说"update yourself",它会 fetch 自己、更新自己、回来说"嘿,我有新功能了"。而且因为产品是由代理构建的,它们把东西结构化成代理期望的命名方式。
11、技术消失是最终体验。你只是在手机上和一个朋友对话,这个朋友无限资源丰富,能访问你的邮件、日历、文件,可以建网站、做行政工作、爬网站、给商家打电话。你不用想配置或上下文,那都融化掉了。他说自己建了 Apple 希望 Siri 能做的东西。
12、新人要保持无限好奇。进入市场会更难,你需要构建东西来获得经验。不需要写很多代码,但要 checkout 复杂的开源项目然后学习。你有一个无限耐心的机器能解释所有事情。必须玩这个技术然后学习,像学乐器,开始可能沮丧,但很快就会变好。
---
精华片段
#01 一天 600 次提交
主持人:你说你一天能有 600 次提交,而且不是垃圾代码?
Peter:是的,这听起来完全疯狂,但它是有效的。有人做了代码审查说"这实际上不是 slop"。
我现在写的代码比以前更好,尽管我自己不再写代码了。以前在公司,我会对每一个细节、每一个空格、每一个命名花大量时间。回头看,这有点傻——客户根本看不到代码内部。
#02 关闭循环原则
主持人:你一直提到"关闭循环",这是什么意思?
Peter:这是让 AI 编码有效的最大秘密——AI 需要能自己验证工作。
AI 之所以擅长编码但在写作上表现一般,是因为代码可以验证。你可以编译、lint、执行、检查输出。如果你正确设计系统,你就有了完美的循环。
我调试 Mac 应用时,让 AI 说"你建一个纯 CLI 用于调试,调用所有相同的代码路径,你可以自己调用然后迭代修复"。然后它就自己 cook 了一个小时,告诉我"这里有个竞态条件,这里有个配置错误"。
我不需要看那些代码。但因为它运行了测试,所以我信任它。
#03 Code Reviews 已死
主持人:那代码审查呢?CI/CD 呢?
Peter:我不太在乎 CI 了。代理运行测试,就快得多。我不想 push 到分支然后等 10 分钟 CI。
我更感兴趣的是 prompts 而不是代码。我让人们请加上 prompts。我读 prompts 比读代码更多,因为这给我更高的信号——你是怎么得到这个解决方案的?问了什么?有多少引导?
如果有人想要一个功能,我让他们写一个 prompt request。把它写好,因为然后我可以把代理指向这个 issue,它就会构建出来。
#04 Claude Code vs Codex
主持人:你现在用什么工具?
Peter:Claude Code 是一个开创品类的产品,对通用计算机工作非常棒。但对于在复杂应用中写代码,Codex 要好太多了。
因为它慢 10 倍。Claude 会读三个文件然后就自信地开始创建代码。而 Codex 会静静地读文件 10 分钟。
我和模型对话。"看看这个,我们有什么选项?""你考虑过这个功能吗?"它会探索不同方向,直到我说"build this"它才会构建。
#05 MCP 是拐杖
主持人:你怎么看 MCP?
Peter:作为拐杖还行。MCP 带来的最好的事情是让公司重新思考开放更多 API。但整个概念有点傻。
模型真的很擅长用 bash。用 MCP 你不能过滤列表、不能链式调用。而如果是 CLI,它可以用 jq 过滤出它需要的东西。
所以我建了 make-porter,把 MCP 转换成 CLI。你可以在手机上说"用 Vercel MCP 做这个",它会去网站找到 MCP、加载它、使用它——全部按需。
#06 并行工作流
主持人:你现在的工作流是什么样的?
Peter:我同时运行 5-10 个代理。
比如我在设计一个新子系统,我知道 Codex 可能需要 40 分钟来构建。所以我想把计划搞对,然后构建,然后移动到别的东西。
这个在 cooking,我在做那个,然后这个 cooking,那个 cooking。我在脑子里切换很多。要保持心流状态,我需要大规模并行化。
主持人:这听起来像星际争霸。
Peter:完全是!也像象棋大师同时下 20 盘棋。