AI 编程时代,真正稀缺的不是代码,而是可验证的意图

发布时间:2026/7/30 7:00:22

AI 编程时代,真正稀缺的不是代码,而是可验证的意图
当代码可以在几分钟内生成软件开发最难的部分就不再是“怎么写”而是“到底该写什么以及如何证明它写对了”假设你对 AI 说“给系统增加一个会员续费功能”几分钟后它可能已经改好了数据库、接口、支付回调和前端页面甚至还补上了一组全部通过的测试。速度令人兴奋但真正的问题才刚刚开始未到期会员续费是从原到期日顺延还是从付款日重新计算同一个支付回调到达两次会不会重复增加会员时长支付成功、权益更新失败时系统如何补偿优惠券能否与续费折扣叠加测试通过证明的是业务正确还是只证明了代码符合 AI 自己的假设AI 不会读心。需求留下的每一处空白都会被它用一个“看起来合理”的答案补上。一个假设也许只是一个小问题十几个相互影响的假设则可能让整个功能返工这正是 AI 编程时代最值得警惕的变化代码生成越快错误假设被固化和扩散得也越快从“代码产能”转向“意图治理”过去代码是昂贵的。一个模糊需求交给工程师后工程师通常会边理解、边追问、边实现。沟通并不总是充分但人的犹豫、经验和代码审查在客观上形成了一层缓冲现在AI 把这层缓冲压缩了。它可以在你尚未想清楚时迅速交付一个完整而自洽的错误答案于是软件开发的核心瓶颈发生了转移过去想法很多代码产能不足现在代码产能充足清晰且可验证的意图不足所谓规约驱动开发Spec-Driven DevelopmentSDD就是针对这个新瓶颈的一种工程回应。它不是让团队重新写几十页没人看的文档而是先把目标、行为、边界、非目标和验收证据整理成可审查、可追踪的规约再让人和 AI 围绕同一份规约完成设计、拆分、实现与验证一条更可靠的开发链路应当是这里最关键的不是文档格式而是“可追溯性”每项任务能否指出自己对应哪条需求每个测试能否说明自己证明了哪条验收标准每次额外修改能否解释为什么没有超出范围好规约不是描述得多而是让错误更早暴露许多人把规约理解成“更详细的 Prompt”。二者其实有本质区别Prompt 通常属于一次对话规约属于项目。Prompt 会随着会话切换、上下文压缩而丢失规约则应进入版本管理能够被审查、比较和持续维护。聊天适合探索规约适合承载团队需要长期相信的事实更重要的是一份好规约必须具备“可证伪性”“系统要稳定”“页面要友好”“尽快完成”都不是真正的约束因为它们无法被客观检查。相比之下下面这些表述更接近可执行规约同一支付回调重复到达时会员时长只能增加一次有效会员购买 30 天续费包后从原到期时间顺延 30 天支付成功但权益更新失败时订单进入待补偿状态本次不支持优惠券与续费折扣叠加上述场景必须分别有自动化测试或可复核的运行证据规约的价值不在于让文档显得专业而在于把争议和失败提前到代码生成之前。越早发现一句需求无法验收越少需要删除几千行“写得很好但方向错误”的代码规约的另一个作用限制 AI 的错误半径“把会员系统做完”不是一个任务而是一个愿望如果 AI 一次改动数据库、接口、定时任务、支付回调和页面等人开始审查时往往面对的是一份难以理解的大型变更。即便结果不对也很难确定它从哪一步开始偏离更稳妥的方式是把工作拆成能够独立审查和验证的小任务例如明确会员期限计算规则并覆盖未过期、已过期和跨月场景为续费订单建立幂等约束并验证重复请求实现支付回调状态流转与失败补偿增加页面交互与错误提示完成端到端链路验证这不是为了制造更漂亮的任务清单而是在主动限制每次执行的影响半径。任务越小反馈越快错误携带到下一阶段的机会越少因此SDD 并不是瀑布开发的复活。瀑布常被诟病是因为它试图在很早的时候一次性冻结全部设计现代规约驱动更像是一条带反馈的装配线先把下一步所需的信息说清楚小步实现小步验证遇到新事实就同步更新规约和设计不要把 SDD 变成新的形式主义规约也有成本。改一个错别字如果还要创建需求、设计、任务和验收四份文件那不是工程化而是流程表演更合理的方法是按三个变量决定规约深度不确定性需求中还有多少需要猜测的地方影响半径改动会跨越多少模块、服务和数据错误代价失败是否涉及资金、权限、隐私或不可逆数据低风险的小改动一段清晰说明和一项检查可能就够了跨系统、涉及支付或数据一致性的功能则值得建立完整的需求、设计、任务和验收链路团队还应警惕一种新的“规约债务”代码已经变化规约却停留在过去。当团队不知道应该相信代码、文档还是口头说明时规约不仅失去价值还会制造误导所以规约必须有明确的生命周期。一次性原型可以在完成后归档长期维护的业务系统则至少应持续同步核心业务规则、接口契约和验收标准。不是所有细节都要成为永久真理但被团队当作依据的内容必须可信一份可以马上使用的轻量模板不必先引入复杂工具。对一个中等复杂度功能可以从下面这份最小规约开始功能名称背景与目标为什么做解决谁的问题成功结果是什么。核心场景用户在什么条件下做什么系统应该返回什么结果。边界与异常失败、重复、超时、并发、权限不足时怎么办。非目标这次明确不做什么。技术约束必须遵守的架构、接口、安全、性能和兼容要求。验收标准每条标准对应什么测试或检查证据。实施任务拆成可独立实现、Review 和验证的小任务先让 AI 根据现有代码和业务背景提出问题、发现歧义并生成初稿再由人决定目标、取舍和验收标准。AI 可以协助写规约但不能替团队定义“什么才算正确”程序员的价值正在上移而不是消失当 AI 越来越擅长把明确方案翻译成代码人的价值会更多地体现在上游和闭环处判断问题是否值得解决识别真正的业务边界和冲突在成本、风险与体验之间做取舍审查 AI 提出的假设定义能够证明结果正确的证据对最终交付承担责任未来优秀的工程师不只是写出更多代码的人也会是能够把模糊愿望整理成可执行约束、把复杂工作拆成可验证步骤并能判断证据是否充分的人Vibe Coding 给了我们前所未有的速度但速度本身不等于生产力。真正可靠的 AI 开发需要方向盘、护栏和终点线模型会越来越强代码会越来越便宜清晰、可审查、可验证的意图才会成为最稀缺的工程资产

相关新闻

Upload-Labs (Pass1-Pass21) 完整通关思路与源码分析

Upload-Labs (Pass1-Pass21) 完整通关思路与源码分析

2026/7/30 7:00:22

文件上传 php官网:PHP php一句话木马 将恶意代码(木马)伪装成看似正常的文件,绕过网站的前端或后端检测并上传,之后通过工具连接木马获得服务器控制权。 🐘 一句话木马是什么? “一句话木马…

STM32 BKP与RTC实战:后备域原理、低功耗数据存储与项目应用

STM32 BKP与RTC实战:后备域原理、低功耗数据存储与项目应用

2026/7/30 7:00:22

1. 项目概述:为什么BKP和RTC是嵌入式系统的“记忆锚点”在STM32这类嵌入式项目的开发中,我们常常会遇到一个看似简单却至关重要的需求:系统断电重启后,如何记住一些关键信息?比如,一个智能水表需要记住累计…

以太网技术全解析:从帧结构到嵌入式与工业应用实战

以太网技术全解析:从帧结构到嵌入式与工业应用实战

2026/7/30 7:00:22

1. 以太网:从办公室到工厂,无处不在的网络基石如果你拆开过家里的路由器,或者仔细观察过电脑机箱后面那一排接口,大概率会看到一个标着“LAN”或者画着类似“三叉戟”符号的RJ-45水晶头接口。这个接口背后,就是以太网。…

React 18 核心概念与 Hooks 实战:从声明式 UI 到高效开发

React 18 核心概念与 Hooks 实战:从声明式 UI 到高效开发

2026/7/30 8:00:25

1. 从“学不动了”到“快速上手”:为什么React值得你投入 前端圈子里总流传着“学不动了”的调侃,框架、工具链更新迭代的速度确实让人眼花缭乱。但如果你问我,在众多选择中,哪一个是最值得投入时间、能让你构建现代Web应用能力产…

矩阵方程求解:从基础到工程实践

矩阵方程求解:从基础到工程实践

2026/7/30 8:00:25

1. 矩阵方程求解概述 矩阵方程求解是线性代数中的核心问题之一,也是工程计算、数据分析、机器学习等领域的基础工具。简单来说,矩阵方程就是形如AXB的方程,其中A、X、B都是矩阵。这类方程在电路分析、结构力学、图像处理等实际问题中广泛存在…

FreeRTOS嵌入式实时操作系统:从核心原理到STM32/ESP32项目实战

FreeRTOS嵌入式实时操作系统:从核心原理到STM32/ESP32项目实战

2026/7/30 8:00:25

1. 项目概述:为什么FreeRTOS值得你投入时间如果你正在玩STM32、ESP32或者GD32这类微控制器,并且感觉裸机编程(也就是一个while(1)大循环)越来越力不从心,那FreeRTOS就是你绕不开的下一站。它不是什么高深莫测的黑科技&…

FireMonkey动画开发:从弹跳小球到奔跑小人

FireMonkey动画开发:从弹跳小球到奔跑小人

2026/7/30 8:00:25

1. 项目概述:FireMonkey动画开发入门十年前我第一次接触FireMonkey时,就被它的跨平台动画能力惊艳到了。作为Delphi开发者从VCL转向FMX的必经之路,动画系统是其中最令人兴奋的部分。不同于VCL时代需要手动处理GDI的繁琐,FireMonke…

C++析构函数深度解析:三种必须自定义的场景与RAII实践

C++析构函数深度解析:三种必须自定义的场景与RAII实践

2026/7/30 8:00:25

1. 项目概述:为什么析构函数值得“深入理解”?在C的世界里,构造函数和析构函数这对“生死搭档”是面向对象编程的基石。如果说构造函数负责对象的“诞生”——分配资源、初始化状态,那么析构函数就负责对象的“善后”——清理资源…

Java运算符深度解析:从核心原理到实战避坑指南

Java运算符深度解析:从核心原理到实战避坑指南

2026/7/30 7:50:25

1. 从“加减乘除”到“程序逻辑”:Java运算符的深度探索如果你刚开始接触Java,或者正准备复习基础以应对面试,那么“运算符”这个概念你一定不陌生。它看起来就像是数学课上的加减乘除,简单到让人想跳过。但在我十多年的开发生涯里…

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

2026/7/28 13:30:18

目标:电脑作为RTSP 服务端,循环推送 H264/H265 视频流; RDK X5 通过 rtsp2display 拉流预览,完全不需要在开发板编译 live555。 提供两套成熟方案: ✅ 方案 A:FFmpeg(最简单,优先推…

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

2026/7/30 1:17:46

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

2026/7/30 2:52:37

说实话,提到PDF拆分再压缩,我真是被折腾得够呛。 上个月公司年度合同归档,一份300多页的PDF总合同,需要按年份拆分成三个独立文件,再分别压缩到10MB以内方便邮件发送各部门确认。我心想这还不简单?先找个海…

粉笔直播课适合周末集中备考考生突破吗

粉笔直播课适合周末集中备考考生突破吗

2026/7/30 0:09:54

本文面向在职备考、工作日难以抽出整块时间、只能依靠周末集中复习的公考考生,围绕"该平台直播课是否适配周末集中备考节奏、能否支撑瓶颈突破"这一核心问题做客观拆解。文中数据来源于公开财报、官网公示价格、第三方投诉平台公开投诉及用户社区讨论&…

ThreadLocal(存取变量)实战获取当前登录的员工

ThreadLocal(存取变量)实战获取当前登录的员工

2026/7/30 0:09:54

注意AOP所应用的注解以及service方法上自定义的Log注解

INAV飞控配置终极指南:从零到稳定飞行的完整解决方案

INAV飞控配置终极指南:从零到稳定飞行的完整解决方案

2026/7/30 0:09:54

INAV飞控配置终极指南:从零到稳定飞行的完整解决方案 【免费下载链接】inav INAV: Navigation-enabled flight control software 项目地址: https://gitcode.com/gh_mirrors/in/inav INAV飞控配置是每个无人机爱好者必须掌握的核心技能,但很多新手…