跳到主要内容

代码的物理学:理解计算中的基本限制(第一部分)

· 阅读需 30 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引言:代码的宇宙速度限制

1905年,阿尔伯特·爱因斯坦(Albert Einstein)证明了一个革命性的结论:没有任何东西能够超越光速。这不是更好的技术可以克服的工程限制,而是时空本身的基本属性,编码在现实的结构中。三十年后的1936年,艾伦·图灵(Alan Turing)为计算证明了一个同样深刻的结果:没有任何算法能够确定一个任意程序是否会停机(称为停机问题(Halting Problem))。与爱因斯坦的光速屏障一样,这不是当前计算机或编程语言的限制。这是一个数学确定性,无论我们的机器变得多么强大,或者我们的算法变得多么聪明,它都将永远为真。

现代软件工程在这些基本限制的阴影下运作,尽管大多数工程师将它们体验为令人沮丧的工具限制,而不是数学确定性。你可能经历过这样的情况:静态分析工具错过了明显的错误,测试框架尽管有100%的覆盖率却无法保证正确性,AI助手生成的代码需要仔细的人工审查。当营销材料承诺"完整的自动化验证"或"有保证的错误检测"时,你可能会感觉有些不对劲——这些声明听起来太好了,不像是真的。

确实如此。你遇到的限制不是等待更好工具的临时工程挑战,而是基本数学不可能性的表现,就像光速或绝对零度一样不可改变。 理解这些限制从约束转变为竞争优势:知道什么是不可能的,可以让你将精力集中在可实现的事情上,就像物理学家利用相对论实现了GPS卫星和粒子物理学,而不是浪费资源试图超越光速。

如果你是一名开发人员,曾经想知道为什么尽管经过数十年的工具开发,某些问题仍然存在,或者如果你是一名技术领导者,正在评估关于革命性测试或验证技术的声明,这篇文章提供了关键的背景。理解计算限制不是失败主义,而是工程成熟的基础。 最好的工程师不会忽视这些边界;他们深入理解这些边界,并在其中出色地工作。

这段旅程探讨了计算限制如何反映物理定律,为什么"困难"问题与"不可能"问题有根本性的不同,以及这些知识如何赋能更好的工程决策。我们将从舒适的物理类比穿越到抽象的计算理论,然后回到你明天就可以应用的实用框架。在这个过程中,你会发现为什么了解游戏规则会让你在游戏中更有效,以及为什么计算历史上的每一次突破性创新都不是通过忽视限制,而是通过深入理解限制而出现的。

系列文章

这是探索计算基本限制的两部分系列的第一部分。第一部分涵盖限制的本质、计算层次结构、复杂性测量和智力-可计算性悖论。第二部分探讨实际工程影响、历史教训和哲学基础。

抱歉,AI救不了测试:莱斯定理告诉你为什么

· 阅读需 23 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引言:完美测试的不可能之梦

"测试只能证明错误的存在,而不能证明错误的不存在。"荷兰计算机科学家艾兹格·迪杰斯特拉(Edsger Dijkstra)在1970年提出这一观点时,他阐明了软件测试的一个基本真理,这个真理至今依然适用。然而尽管有这样的智慧,软件行业仍在追求一个难以实现的目标:能够保证软件正确性的全面自动化测试。

如果你是一名开发者,曾经疑惑为什么达到100%的测试覆盖率仍然无法保证代码无bug,或者为什么精心设计的测试套件偶尔还是会漏掉关键问题,那么你正在面对一个更深层的现实。自动化测试的局限性不仅仅是工程挑战,它根植于数学上的不可能性

当前的AI驱动测试工具浪潮承诺将彻底改变质量保证。营销材料宣传智能测试生成、自主bug检测和前所未有的覆盖率。虽然这些工具确实带来了真正的改进,但它们无法逃脱七十多年前数学家亨利·戈登·莱斯(Henry Gordon Rice)建立的理论约束。他的定理证明,关于程序行为的某些问题根本无法通过算法来回答,无论计算能力或独创性如何。

这不是悲观的观点,而是现实的观点。理解为什么完全的测试自动化在数学上不可能,有助于我们更好地决策测试投入的方向,以及如何有效利用现代工具。与其追求无法实现的完美自动化目标,我们可以采用务实的方法,在承认这些限制的同时最大化实际效果。

莱斯定理如何影响软件测试?这正是本文要探讨的核心问题。我们会深入分析这个数学结果究竟证明了什么,理解它如何约束自动化测试,以及如何将形式化规格说明(Formal Specification)与 AI 驱动的测试生成结合起来,走出一条实用的道路。认清可能性的边界,反而能让你成为更有效的工程师,而不是被理论束缚。

让我们从理论出发,一步步走向日常开发实践,看看这些深层原理如何指导更好的工程决策。无论你是在编写单元测试、设计测试策略,还是评估新测试工具,掌握这些基础都能提升你的判断力、改善实际效果。

从聊天机器人到智能代理:构建企业级LLM应用

· 阅读需 23 分钟
马老师 Marvin
软件工程师 & 开源爱好者

想象一个再熟悉不过的场景:周一上午,你又坐在会议室里复盘,为什么公司的 LLM 应用始终冲不出展示环境。团队已经搭了一个看起来很“聪明”的、由 GPT-4o 驱动的智能代理:能理解复杂客户咨询、通过函数调用串起内部系统,甚至还能看似自主地编排多步骤流程。那时领导层一度热情高涨,预算批得很快,Roadmap 也写得漂亮。可六个月过去,项目仍困在资深从业者口中的 demo hell(“演示炼狱”)——永远在演示,始终不上真正可承压的生产。

如果你瞬间代入,这不是偶然共鸣——而是当今企业的常态。如果这个场景听起来很熟悉,你并不孤单。无论组织是使用托管API(如GPT-4o、Claude Sonnet 4和Gemini 2.5 Pro)构建,还是部署自托管模型(如DeepSeek-R1、QwQ、Gemma 3和Phi 4),绝大多数都难以超越实验性试点项目。正如我在AI生产力研究分析中探讨的,AI的生产力效益高度依赖于具体情境,结构化方法显著优于临时性使用。瓶颈不在于你的LLM集成的复杂性、托管与自托管模型的选择,或者你的AI开发团队的才能。而在于更根本的东西:LLM应用底层的数据基础。

真正卡住企业级 LLM 应用的,不是“模型选哪个”,而是:能不能在对的时间,把对的数据,以可追溯、可度量、可治理的方式送到模型面前。 你的“智能”代理,其上限只等于你数据基础设施的下限。

如果你尝试把一个惊艳的演示推向生产,结果被碎片化系统、不一致 API、缺失血缘、检索漂移、缓存陈旧这些细碎又顽固的阻力磨掉耐心——这篇文章就是写给你的。我们的基本立场很直接:企业级 LLM 应用的成功,不取决于提示技巧或代理框架炫不炫,而取决于是否有一套为“程序化智能消费”而设计的数据底座。

接下来我们会按层拆开:数据可访问性如何悄悄钳制模型表现;哪些数据与上下文管理模式让工具调用真正可靠;面向 LLM 特有风险的治理如何设计;以及如何把这些理念落成可以扩展、可演进的生产体系。

答案从来不是“多写几个高阶提示”或者“再换个更大模型”——而是重建数据基础。下面先从问题底层结构讲起。

规格驱动开发:复杂功能的系统性方法

· 阅读需 19 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引言:复杂功能开发的挑战

每个开发者都知道那种盯着复杂需求而不知从何开始的感觉。现代软件开发越来越多地涉及构建整合多个服务、处理不同数据格式、协调各种 API 的系统。在初始规格中看似简单的东西,往往会演变成复杂的相互依赖组件网络,每个组件都有自己的约束和边界条件。

这种复杂性在几个常见的开发挑战中显现出来,无论团队的经验水平或技术栈如何,都会面临这些挑战。项目经常因为需求在实现过程中的演变而遭受范围蔓延。开发者花费大量时间向 AI 助手或团队成员解释上下文,经常重复相同的架构约束。技术债务在开发者因压力做出仓促决定时累积,导致系统变得越来越难以维护和扩展。

相关阅读

关于复杂性如何在软件项目中产生和累积的深入探讨,请参见我之前的分析:架构简谈:为什么我们需要在软件项目中考虑复杂性?

上下文工程:AI系统中信息选择的艺术

· 阅读需 15 分钟
马老师 Marvin
软件工程师 & 开源爱好者

** "上下文工程是构建动态系统,以正确格式提供正确信息和工具,使LLM能够合理完成任务的方法。" ** — LangChain

如果你使用AI开发应用有一段时间了,你可能已经遇到了简单提示词不再足够的瓶颈。你精心制作的提示在边缘情况下失效,你的AI助手在处理复杂任务时变得混乱,你的应用程序难以维持连贯的对话。这些挫折并非偶然——它们揭示了AI开发中正在发生的根本性转变

像OpenAI、Anthropic、Notion和GitHub这样的公司不仅在构建更好的模型,他们还在开创全新的信息、工具和结构流向AI系统的方法。这就是上下文工程的本质。

无人值守的AI编程:使用GitHub Copilot Agent进行内容迁移的体验

· 阅读需 7 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引言

最近,我使用 GitHub Copilot Agent 成功将所有存档的markdown文章迁移到这个基于Docusaurus的博客,这个体验出乎意料地顺畅高效。最让我印象深刻的不仅是AI处理重复任务的能力,还有我能够引导它自主工作,而我可以专注于更高层次的决策。更令人着迷的是,我甚至可以在通勤或休息时用手机来审查和引导AI代理的工作。这次体验从根本上改变了我对AI辅助开发工作流的看法。

以下是迁移完成后的中英文博客展示:

图1:迁移效果一览(中文)

图2:迁移效果一览(英文)

Vercel AI SDK:加速 AI 应用构建的完整解决方案

· 阅读需 18 分钟
马老师 Marvin
软件工程师 & 开源爱好者

作为一名开发者,如果你想快速构建 AI 驱动的应用,Vercel AI SDK 是一个理想的选择。它是一个开源的 TypeScript 工具包,由 Next.js 的创建者开发而成,旨在简化 AI 集成过程,让你专注于业务逻辑而非底层复杂性。 通过统一的 API、多提供商支持和流式响应等特性,它显著降低了开发门槛,帮助开发者在短时间内从概念到上线。 在这篇技术博客中,我将从概述、核心优势、实际示例、与其他工具的比较、真实世界应用案例、社区反馈、潜在挑战等方面主张:我们应该利用 Vercel AI SDK 来加速 AI 应用的构建。特别值得一提的是,其新推出的 AI Elements 组件库,作为开箱即用的 AI 应用 UI 框架,与 AI SDK 深度集成,提供极高的扩展性和自定义能力,进一步提升了开发效率。

POML:结构化提示工程的兴起与AI应用架构的“新三驾马车”展望

· 阅读需 12 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引言

在人工智能(AI)飞速发展的今天,提示工程(Prompt Engineering)正从一门依赖直觉的“艺术”转型为系统化的“工程”实践。微软于2025年推出的POML(Prompt Orchestration Markup Language)作为一种结构化标记语言,为这一变革注入了新动力。POML不仅解决了传统提示工程的混乱与低效,还预示着AI应用架构可能迎来类似Web开发的“HTML/CSS/JS三驾马车”范式。本文基于一份深入研究报告,详细剖析POML的核心技术、与Web架构的类比、实际应用场景以及未来潜力,为开发者与企业提供可操作的洞见。

POML开启提示工程新纪元

POML由微软研究院推出,其设计灵感源自HTML和XML,旨在通过模块化、语义化的标签(如<role>、<task>)将复杂的提示分解为清晰的组件,解决传统“提示意面”(Prompt Spaghetti)的痛点。它通过以下特性重塑提示工程:

  • 语义化标签:提升提示的可读性、可维护性和可重用性。
  • 多模态支持:无缝整合文本、表格、图像等数据。
  • 样式系统:受CSS启发,分离内容与呈现,简化A/B测试。
  • 动态模板:支持变量、循环和条件,实现自动化和个性化。

POML不仅是一门语言,更是AI应用架构的结构层,与优化工具(如PromptPerfect)和编排框架(如LangChain)共同构成“新三驾马车”。这一架构与学术界提出的“提示分层架构”(Prompt-Layered Architecture, PLA)理论高度契合,将提示管理提升为与传统软件开发同等重要的“第一公民”。

未来,POML有望成为多智能体系统(Multi-Agent Systems)的“通信协议”和“配置语言”,为构建可扩展、可审计的AI应用奠定基础。尽管社区对其复杂性存在争议,但其潜力不可忽视。本文将为开发者提供实用建议,助力企业拥抱这一变革。

斯坦福大学研究揭示AI对开发者生产力的真实影响:并非万能灵丹

· 阅读需 10 分钟
马老师 Marvin
软件工程师 & 开源爱好者

本文内容基于斯坦福大学研究员 Yegor Denisov-Blanch 在 AIEWF 2025 大会上的演讲,该研究分析了来自数百家公司的近10万名开发者的真实数据。感兴趣并有条件的可以去 YouTube 观看全部演讲内容。

最近,“AI将取代软件工程师”的论调甚嚣尘上。Meta的马克·扎克伯格(Mark Zuckerberg)甚至在今年年初表示,他计划在年底前用AI取代公司所有中级工程师。这种愿景无疑能鼓舞人心,但也给全球的技术决策者带来了压力:“我们离用AI取代所有开发者还有多远?”

斯坦福大学软件工程生产力研究团队的最新发现,为这个问题提供了一个更现实、更细致的答案。经过对近10万名软件工程师、600多家公司、数千万次提交以及数十亿行私有代码库数据的深入分析,这项大规模研究表明:** 人工智能确实可以提升开发者生产力,但它绝非一个“一劳永逸”的万能解决方案,其影响是高度情境化且充满细微差别的**。虽然平均生产力提升了约20%,但在某些情况下,AI甚至可能适得其反,降低生产力。

DeepSeek:技术民主化的先锋,还是搅局者?

· 阅读需 10 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引言

"预测未来的最好方式,就是去创造未来。" —— 彼得·德鲁克 (Peter Drucker)

2022年,OpenAI 的 ChatGPT 横空出世,以其前所未有的智能水平,瞬间点燃了全球对人工智能技术的狂热。这场由大型语言模型(LLM)引发的技术浪潮,犹如一场"技术爆炸",不仅让大众惊叹于 AI 的潜力,更深刻地改变了我们对未来科技发展方向的认知。从那时起,科技巨头们纷纷加入战局,竞相推出更强大、更经济的 AI 模型,试图在这场竞赛中占据领先地位。成本的持续降低和性能的不断提升,似乎预示着一个触手可及的 AI 普惠时代。

然而,当我们将目光聚焦于这场技术盛宴的核心——大语言模型本身时,却发现一个有趣的现象:尽管参与者众多,但真正能被称为"现象级"的,似乎只有 DeepSeek 一家。 这家被誉为 "AI界拼多多" 的公司,以其惊人的低成本和开源策略,迅速在全球范围内引发热议,甚至被一些人视为"技术民主化"的先锋。那么,DeepSeek 的爆红仅仅是因为价格优势吗?它真的能撼动现有 AI 格局,成为颠覆性创新的代表吗?还是说,它仅仅是技术巨头竞争格局中的一个搅局者?本文将深入探讨 DeepSeek 现象背后的深层原因,剖析其在全球 AI 领域迅速崛起的真正动因,以及它为整个行业带来的启示。