#AI#Vibe Coding#DevOps

Vibe Coding 非功能预算:把性能、安全与可用性写成验收门

“要快、要安全、体验友好”无法约束 AI 的实现选择。本文把非功能目标写成带环境、分位数、威胁边界、无障碍场景和失败动作的预算,并纳入每轮回归。

本文要点

  • 主题聚焦:AI、Vibe Coding、DevOps
  • 适合人群:独立开发者、全栈工程师、AI 应用开发者
  • 核心价值:快速理解背景、实践路径、常见误区和工程建议
作者 @admin·发布于 2026年7月30日·更新于 2026年7月30日

“页面要快、接口要安全、所有人都能用”是愿望,不是规格。Agent 无法从中判断首屏允许多少 JavaScript、查询在什么数据量下算慢、哪些操作必须重新认证、键盘焦点如何恢复。它会选择能尽快运行的默认实现,团队则在上线前才发现 bundle、权限和交互债务。

非功能预算把质量目标写成可测量上限或必须满足的门,并规定测量环境、证据和超限动作。预算不是全行业真理,而是基于目标用户与主路径、风险和现有基线作出的版本化决定。示例数字必须用本项目数据校准,不能复制一张表就宣称达标。

每条预算都要有六个字段

使用 metric、scenario、environment、threshold、measurement、failureAction。例如“API P95 < 300 ms”缺少数据规模、并发、缓存冷热和观察窗口,几乎无法复现。更可执行的写法是:“在预生产同规格实例、10 万项目行、20 并发、冷查询比例 20% 的固定 workload 中,GET /projects 服务端 P95 不超过基线加 10%,且绝对上限由性能评审确定;连续三轮独立运行,任一轮超限即阻断。”

绝对阈值要来自用户需要或容量边界,相对阈值用来阻止回归。没有可信基线时,先登记 UNKNOWN 并跑测量,不要填一个看似专业的数字。假设与未知问题账本保存待校准项;确定后在预算中引用数据集摘要、脚本版本和日期。

性能预算覆盖用户等待和系统余量

前端按关键页面记录 Core Web Vitals、首屏资源字节、JavaScript 执行时间和长任务,区分实验室数据与真实用户数据。web.dev 对 LCP、INP 和 CLS 的定义及测量方式是指标来源,但目标人群的设备、网络与页面类型仍由项目选择。报告分位数和样本边界,不用平均值掩盖慢用户。

后端预算覆盖端到端延迟、错误率、吞吐、队列等待、数据库查询和资源水位。分别测冷启动、热缓存、最大允许 payload 与下游变慢。为超时规定总 deadline 和每跳预算,重试必须消耗同一个截止时间并有上限;否则“提高成功率”的重试会制造延迟和负载放大。

预算也限制增长,例如关键路由压缩后 JavaScript 不超过已批准基线上浮值、单次导入峰值内存不能超过容器限制的安全水位。任何数字附测量命令和 fixture。性能优化若改变缓存一致性或错误语义,需要回到数据模型与业务不变量和API 合同与请求响应示例重新评审。

安全预算不是“漏洞数量越少越好”

安全有许多二元要求,不适合用平均分。先写资产、攻击者能力、信任边界和数据分类,再选适用控制。可参考 OWASP ASVS 建立验证项,但要标明所用版本、级别和不适用理由,不能把扫描器零告警等同安全。

可执行门包括:所有对象读取和写入在服务端做授权反例测试;秘密不进入客户端 bundle、日志和错误响应;上传同时限制类型、字节、解压后规模和处理时间;有副作用操作具备 CSRF/重放防护及审计;高风险依赖漏洞在批准期限内处置;安全 headers 与 cookie 属性由集成测试验证。对 SQL 注入、越权、重复提交和会话过期使用恶意输入测试,而不只检查存在某个中间件。

规定失败动作:高影响控制失败必须阻断;工具不可用标为 NOT_EVALUATED,不能沿用上次绿色;低风险例外有 owner、理由和到期日。扫描误报可被批准豁免,但保留原发现与复核证据。

可用性预算围绕完成任务

WCAG 2.2 提供可测试成功准则,但“通过自动扫描”只覆盖其中一部分。为主路径规定:仅键盘可到达并完成;焦点顺序和可见状态稳定;表单错误与字段关联且可恢复;状态变化能被辅助技术感知;200% 或项目规定缩放下内容和操作不重叠;颜色不是唯一信息;目标语言文案可理解。

把这些场景接到UI 状态矩阵:初始加载不会被朗读成空数据,错误 alert 不重复轰炸,权限撤销后焦点有去处,后台刷新不打断输入。自动化 axe 或规则检查作为早期门,再用键盘、屏幕阅读器和缩放人工路径补足。记录浏览器、辅助技术版本、账户角色和 fixture,使结果可复现。

在生成循环中管理预算

任务开始时只选本切片会影响的预算,要求 Agent 在 plan 中说明潜在成本:新增依赖增加多少资源、查询复杂度怎样变化、新权限边界在哪里、交互新增哪些状态。实现后跑受影响的快速门;合并前跑稳定环境基准;发布后用真实指标校准,但生产观测不能替代发布前阻断。

预算冲突要显式决策。为了更强的客户端校验增加 bundle,或为了加密增加延迟时,不能由 Agent 默默牺牲另一项。提交变更请求,列出两边测量、替代方案、用户影响和到期时间,通过规格变更日志与重新验收更新版本。

Definition of Done 与交付边界引用预算结果摘要:使用哪个代码版本、环境和脚本,哪些门通过、哪些未评估。这样“快、安全、可用”不再是评审语气,而是一组能重复运行、失败会阻断、随证据校准的工程合同。Vibe Coding 可以继续快,但每一轮速度都不能借用未来用户的等待、风险和可达性偿还。

Related

相关推荐