2026年为何仍要写代码:在AI时代保持对软件架构的掌控
1. 软件工厂的建造者
不要填写此字段,如果你是人类:Doug的搜索博客和新闻通讯 订阅 了解更多 检查你的电子邮件以确认订阅 返回首页 为何在2026年写代码 2026年7月9日 我们的工作是建造软件工厂——而不仅仅是软件。软件工程师维护着装配线,让任何人都能通过提示(prompt)提出更改并立即交付。我们搭建使代理(agent)能够成功的基础设施。我们通过提示(技能、AGENTS.md、知识库等)主动行动。我们通过自动化评估(测试、linting、类型系统、评估、其他AI等)被动保护软件。这一切都让代理保持在正轨上。即使是一个愚蠢的模型,只要有新鲜的上下文,也能在这些约束下工作并产生足够好的更改。
2. 代码的价值:超越被动观察
开始看起来甚至查看代码都很荒谬。而且想写代码绝对可笑。我不同意。写代码仍然有用。即使拥有类似Fable的智能,人类也能从写代码中获得价值。不是因为代理在编码方面比人类差。而是为了直接在执行环境中思考,而不是通过英语代理。这关乎注意力和理解。为了保持我的注意力,我必须超越像远距离被动观察代理那样“阅读代码”。要真正与系统的架构建立联系,亲身体验代码是有帮助的。我不想要你那扁平的2D差异和补丁系统。时不时地,我需要完整的、4DX虚拟现实体验,并附上连接到我下体的疼痛传感器,来体验正在发生的事情。
3. 体验脆弱性:代码的触觉反馈
不,这不是因为“代码不漂亮”,而是关于体验脆弱性。如果我在不破坏某些东西的情况下很难在此基础上构建代码,那么代理就更难理解它。如果我能清理代码,然后记录一个关于架构的一致原则,而没有半打例外,软件工厂就能更好地工作。如果我能调试,找到测试策略薄弱的地方,并找到一个修复方案,我就能消灭一整个新类别的bug。是的,你可以在不写代码的情况下做到这一点。我不会教训你,称你为“垃圾猫”,并说体验软件的唯一方法是用磁化针和稳定的手。我也感染了AI精神病。我的绝大多数代码都是AI生成的。尽管如此,我发现写代码是一个有用的工具。我鼓励其他人也这样做。
4. 注意力与所有权:从反向半人马到主动参与
当我只是一个反向半人马(reverse centaur)时,我很难集中注意力。当我阅读和批准代码时,我观察到我没有同样的所有权感。垃圾代码(slop)在雷达下飞行。微调更难。从长远来看,垃圾代码也会伤害代理。脆弱性之所以累积,正是因为我们没有关注细节。另一方面,当人类做一些工作,提出一种方法,然后代理按照模式进行时,我参与并拥有结果。写代码帮助我思考。英语是一种欠指定的语言。它不是表达计算的精确方式。对于真正的算法工作,我想用可执行的步骤进行草图构思和思考。我想要一个校准过的精度程度。有时是低级别语言,具有巨大的设计空间。有时是高级语言,具有更有限的计算环境。
5. 代理不是编译器:放弃思维与品味的危险
相反,我们正在转向这种错误的思维模式,认为编码代理就像编译器。这种思维模式允许我们交付写得糟糕的代码。代理不是编译器——它们更像是刚入职的实习生。它们读取部分可能被垃圾化的代码,接受一个不精确的变更描述,然后必须生成一个变更。人类不能将自己的思维和品味交给实习生大军。而亲自动手,而不是作为消费者,是有帮助的。例如,你见过代理遵循童子军规则(boy scout rule)吗?即它们离开时代码比发现时更好?而且你会希望它们尝试这样做吗?代理倾向于尽可能安全地进行当前更改。我在之前的代码库中遇到过一种情况:一天早上,在喝咖啡之前,我的肉脑提到使用浏览器本地存储。于是一些随机状态在本地存储中管理。其他所有东西都通过后端数据库。当我查看代码时,为了保留这个愚蠢的人类错误而进行的包装和间接操作的数量可能使代码行数增加了三倍。代理可以通过如此保守来放大我们的一次性糟糕决策。
6. 细节决定成败:从算法到架构
经历并愉快地删除代码和探索,帮助我达到了比仅仅通过英语代理更好的架构。我的思考、我的创作、我指导重构的能力,通过关心代码而得到了极大的放大。如果我们正在建造一个软件工厂,细节很重要。建立架构模式的细节。深入到算法和性能。代理推动我们评估、测量和保护。它们使早期将CI添加到副项目中变得很酷,而不是事后才考虑。这是对软件状态的巨大改进。但任何装配线都有其弱点。偶尔在汽车工厂,我们需要拆解装配线。或者深入研究内燃机的细节以实现10%的改进。或者花一整天观察刹车片测试,以找出为什么现场的一些问题没有被早期检测到。我们需要这样做,而不是将整个工厂的图景都记在脑子里。我们将微小的细节与大局联系起来。在软件中划定你可以接触的任意边界会妨碍这种努力。
7. 加入我的培训课程
享受以培训课程形式呈现的softwaredoug!5月18日开始!在此注册 - http://maven.com/softwaredoug/cheat-at-search 我希望你加入我的“使用代理在搜索中作弊”课程,学习在搜索中使用代理。构建更好的RAG,并在查询理解中使用LLM。 Doug Turnbull 更多来自Doug Twitter | LinkedIn | 新闻通讯 | Bsky
🔗 原文链接:https://softwaredoug.com/blog/2026/07/09/write-code.html
2026年为何仍要写代码:在AI时代保持对软件架构的掌控
1. 软件工厂的建造者
不要填写此字段,如果你是人类:Doug的搜索博客和新闻通讯 订阅 了解更多 检查你的电子邮件以确认订阅 返回首页 为何在2026年写代码 2026年7月9日 我们的工作是建造软件工厂——而不仅仅是软件。软件工程师维护着装配线,让任何人都能通过提示(prompt)提出更改并立即交付。我们搭建使代理(agent)能够成功的基础设施。我们通过提示(技能、AGENTS.md、知识库等)主动行动。我们通过自动化评估(测试、linting、类型系统、评估、其他AI等)被动保护软件。这一切都让代理保持在正轨上。即使是一个愚蠢的模型,只要有新鲜的上下文,也能在这些约束下工作并产生足够好的更改。
2. 代码的价值:超越被动观察
开始看起来甚至查看代码都很荒谬。而且想写代码绝对可笑。我不同意。写代码仍然有用。即使拥有类似Fable的智能,人类也能从写代码中获得价值。不是因为代理在编码方面比人类差。而是为了直接在执行环境中思考,而不是通过英语代理。这关乎注意力和理解。为了保持我的注意力,我必须超越像远距离被动观察代理那样“阅读代码”。要真正与系统的架构建立联系,亲身体验代码是有帮助的。我不想要你那扁平的2D差异和补丁系统。时不时地,我需要完整的、4DX虚拟现实体验,并附上连接到我下体的疼痛传感器,来体验正在发生的事情。
3. 体验脆弱性:代码的触觉反馈
不,这不是因为“代码不漂亮”,而是关于体验脆弱性。如果我在不破坏某些东西的情况下很难在此基础上构建代码,那么代理就更难理解它。如果我能清理代码,然后记录一个关于架构的一致原则,而没有半打例外,软件工厂就能更好地工作。如果我能调试,找到测试策略薄弱的地方,并找到一个修复方案,我就能消灭一整个新类别的bug。是的,你可以在不写代码的情况下做到这一点。我不会教训你,称你为“垃圾猫”,并说体验软件的唯一方法是用磁化针和稳定的手。我也感染了AI精神病。我的绝大多数代码都是AI生成的。尽管如此,我发现写代码是一个有用的工具。我鼓励其他人也这样做。
4. 注意力与所有权:从反向半人马到主动参与
当我只是一个反向半人马(reverse centaur)时,我很难集中注意力。当我阅读和批准代码时,我观察到我没有同样的所有权感。垃圾代码(slop)在雷达下飞行。微调更难。从长远来看,垃圾代码也会伤害代理。脆弱性之所以累积,正是因为我们没有关注细节。另一方面,当人类做一些工作,提出一种方法,然后代理按照模式进行时,我参与并拥有结果。写代码帮助我思考。英语是一种欠指定的语言。它不是表达计算的精确方式。对于真正的算法工作,我想用可执行的步骤进行草图构思和思考。我想要一个校准过的精度程度。有时是低级别语言,具有巨大的设计空间。有时是高级语言,具有更有限的计算环境。
5. 代理不是编译器:放弃思维与品味的危险
相反,我们正在转向这种错误的思维模式,认为编码代理就像编译器。这种思维模式允许我们交付写得糟糕的代码。代理不是编译器——它们更像是刚入职的实习生。它们读取部分可能被垃圾化的代码,接受一个不精确的变更描述,然后必须生成一个变更。人类不能将自己的思维和品味交给实习生大军。而亲自动手,而不是作为消费者,是有帮助的。例如,你见过代理遵循童子军规则(boy scout rule)吗?即它们离开时代码比发现时更好?而且你会希望它们尝试这样做吗?代理倾向于尽可能安全地进行当前更改。我在之前的代码库中遇到过一种情况:一天早上,在喝咖啡之前,我的肉脑提到使用浏览器本地存储。于是一些随机状态在本地存储中管理。其他所有东西都通过后端数据库。当我查看代码时,为了保留这个愚蠢的人类错误而进行的包装和间接操作的数量可能使代码行数增加了三倍。代理可以通过如此保守来放大我们的一次性糟糕决策。
6. 细节决定成败:从算法到架构
经历并愉快地删除代码和探索,帮助我达到了比仅仅通过英语代理更好的架构。我的思考、我的创作、我指导重构的能力,通过关心代码而得到了极大的放大。如果我们正在建造一个软件工厂,细节很重要。建立架构模式的细节。深入到算法和性能。代理推动我们评估、测量和保护。它们使早期将CI添加到副项目中变得很酷,而不是事后才考虑。这是对软件状态的巨大改进。但任何装配线都有其弱点。偶尔在汽车工厂,我们需要拆解装配线。或者深入研究内燃机的细节以实现10%的改进。或者花一整天观察刹车片测试,以找出为什么现场的一些问题没有被早期检测到。我们需要这样做,而不是将整个工厂的图景都记在脑子里。我们将微小的细节与大局联系起来。在软件中划定你可以接触的任意边界会妨碍这种努力。
7. 加入我的培训课程
享受以培训课程形式呈现的softwaredoug!5月18日开始!在此注册 - http://maven.com/softwaredoug/cheat-at-search 我希望你加入我的“使用代理在搜索中作弊”课程,学习在搜索中使用代理。构建更好的RAG,并在查询理解中使用LLM。 Doug Turnbull 更多来自Doug Twitter | LinkedIn | 新闻通讯 | Bsky
🔗 原文链接:https://softwaredoug.com/blog/2026/07/09/write-code.html