← 返回博客

心流编码实践

Manuel Odendahl

来自 代理工程会议

播出时间 2025 年 9 月 23 日


我们邀请了拥有 20 多年经验的工程师 Manuel Odendahl 与我们一起探索“心流编码”。Manuel 没有采用典型的提示工程来回迭代的方式,而是并行运行多个 AI 模型,将每个模型视为开发不同方面的专业工具。

在 45 分钟内,Manuel 现场构建了一个 Doodle 日历克隆版,并向我们演示了他的工作流程。我们看到他在 iPad 上草拟想法,同时向多个模型发出提示,并使用 YAML DSL 作为自然语言和可执行代码之间的中间层。

他的技术包括管理预期、从 AI 失败中学习,以及利用他的工程经验来指导模型,而不是进行微观管理。

您可以在 YouTube 上观看完整会话,或阅读下面的会话精选语录。

定义心流编码

“我将其定义为在不真正查看输出代码的情况下使用大型语言模型。显然,我关心它的工作方式,但并不真正查看代码,这就是我的定义。”——Manuel Odendahl

“这并非最终目标,我不会将所有东西都‘心流’并推送到生产环境。但我认为这是一种非常有趣的新型软件编写模式。就像,哦,你可以通过结对编程来编写软件,对吧?你可以通过白板设计来开发软件。”——Manuel Odendahl

YAML DSLs 作为秘密武器

“我几乎所有地方都用它。这只是一种略微更正式的自然语言表达方式。对吧。如果你将 LLM 视为转换器,那么 LLM 并不知道它是在编写代码还是在编写自然语言。”——Manuel Odendahl

“如果你把这个交给一个不是程序员的人,他们也能说出,‘我要在 Doodle 中添加从晚上 10:00 到 10:45 的时段’,因为这实际上就像自然语言稍微转换了一下。但它又足够正式,我突然可以将其解释为代码。”——Manuel Odendahl

“只要我生成 YAML,我就能对它的沙盒有非常严格的控制,同时我还能构建许多与我的应用程序真正相关的功能。我可以‘心流’很多东西,并且非常确定它不会做任何有害的事情。”——Manuel Odendahl

管理预期并从失败中学习

“这就像 sonet 轮盘赌。你永远不知道会出来什么。它可能是完全、完全的胡言乱语,对吧?它会说,我完成了所有事情。你一看,它却只是一个写着‘Echo Hello?’的 shell 脚本。你就会说,嗯,好吧。”——Manuel Odendahl

“当大型语言模型未能实现我想要的功能时,我就知道我已经足够努力了,对吧?如果它总是成功,我就会觉得,好吧,我没有探索这些工具实际上能做什么,因为它们一直在发展。”——Manuel Odendahl

心流编码技能

“我认为这确实是一项很难学习和练习的技能,从某种意义上说,你做得越多,就越会觉得,哦,Claude 从三月开始就有这种行为,我已经尝试了足够长的时间才意识到这是提示它的好方法。”——Manuel Odendahl

“尽管没有看代码,你还是会觉得,我知道,然后他们可能只是瞥一眼代码,然后说,是的,数据库中没有 ID,你知道,提示它,然后它就修复了。”——Manuel Odendahl

通过心流编码学习

“在我构建工具的同时,我只是说,哦,我想从 YAML 文件中看到保险库,例如。我越来越了解 Vault 是如何工作的。我会让它为我生成教程。来理解我刚刚生成的东西是如何工作的。”——Manuel Odendahl

“所以我仍然没有阅读这段代码,但我相当清楚它是如何工作的。因为我一直要求它解释很多这些东西。”——Manuel Odendahl