AI Pulse
📡 X 信号

Vibe-coded应用上线前的150项必做检查清单

每周都有人跟我说,他们周末用氛围编程搞出了自己的应用,再也不需要开发者了。在它接触付费客户之前,确保它包含以下内容:

> 有人设计的 schema,而不是 AI 临时拼凑的表结构
> 即使有人在邮箱里输入加号也能正常工作的登录功能
> 会过期且只能使用一次的密码重置链接
> 多因素认证,以及为丢失手机的用户提供的恢复路径
> 会超时的会话,以及终止某个用户所有会话的方法
> 为没有 SSO 就不签约的企业客户提供的 SSO
> SAML,因为该客户的 IT 团队不使用魔法链接
> SCIM,这样被解雇的员工在 IT 部门将其下线时就能立即失去访问权限
> 比“管理员”和“其他所有人”更深入的角色和权限
> 防止用户 A 通过在 URL 中更改一个数字来读取用户 B 数据的检查
> 租户隔离,这样一个客户的 bug 就不会显示另一个客户的记录
> 供支持人员使用的管理员“以该用户身份登录”按钮,每次使用都有审计追踪
> 对登录进行速率限制,这样就没有人能够大规模猜测密码
> 既能阻止攻击者,又不会在董事会会议前一晚锁定 CFO 账户的锁定机制
> 可以向前运行和回滚的数据库迁移
> 不会在周二下午 2 点锁定主表的迁移
> 索引,因为在 50 行测试数据上瞬间完成的查询在 500 万条真实数据上会超时
> 连接池,这样流量激增就不会耗尽数据库
> 每晚备份
> 经过测试的备份恢复,因为从未恢复过的备份只是一种希望
> 针对有人运行没有 WHERE 子句的 DELETE 操作那天的时间点恢复
> 软删除,这样“我不小心删除了它”就只是一个支持工单,而不是一起事故
> 在服务器上进行验证,而不仅仅是在表单中
> 正确存储的时区,这样早上 9 点的提醒就不会在凌晨 4 点触发
> 姓氏中带撇号的客户
> 每个字段中的表情符号、重音符号和从右到左的文本
> 以整数形式存储的金额,因为在浮点数中 0.1 + 0.2 不等于 0.3
> 适用于您所销售的每个国家/地区的货币、舍入和税收规则
> 能够在第二个客户要求“一个小改动”时依然适用的数据模型
> 幂等键,这样重试支付就不会重复扣款
> 为点击提交按钮四次的用户进行去重
> 在第 400 页仍然有效的分页
> 导出功能,因为迟早每个客户都希望以电子表格的形式获取他们的数据
> 能够处理有人在 2009 年保存的 CSV 文件的导入功能
> 保留规则,以及按照合同约定删除数据的代码
> 代码、代码库和 AI 聊天记录中都不包含机密信息
> 轮换上个月 AI 粘贴到配置文件中的每个密钥
> 确认 AI 安装的每个软件包都存在且是您想要的那个
> 依赖项扫描,因为 AI 引入了没有人审查过的库
> 在用户可以输入的所有地方进行输入清理
> 防范 SQL 注入、XSS、CSRF 以及 OWASP 列表中的其他攻击
> 经过扫描、限制大小并存储在无法执行位置的文件上传
> 不是“允许一切”的 CORS 规则
> 每个响应上的安全标头
> 静态和传输中的加密
> 对每个人(包括持有生产环境凭据的 AI 代理)采用最小权限访问
> 记录谁做了什么,但不记录密码、令牌或卡号的日志
> 在企业客户的安全团队自行进行渗透测试之前进行一次渗透测试
> 回答每个企业买家发送的安全问卷,并为每个答案提供证据
> 针对陌生人向您发送漏洞报告那天的披露流程
> 针对装有生产环境访问权限的笔记本电脑被盗那天的计划
> SOC 2,这意味着政策、证据和审计师,而不是一个复选框
> 当有一条患者记录触及您的系统时,就需要符合 HIPAA
> 与所有接触该数据的供应商(包括您的 AI 模型提供商)签订 BAA
> 显示谁查看了记录,而不仅仅是谁更改了记录的审计追踪
> PCI 范围,以及将卡号排除在您的数据库之外
> 能够到达每个表、备份和日志的 GDPR 删除请求
> 为合同规定仅限欧盟的客户提供的数据驻留
> 有人签字确认的季度访问审查
> 相互匹配的开发、预发布和生产环境
> 以代码形式编写的基础设施,这样配置就不会只存在于某个人的记忆中
> 在任何内容到达客户之前运行测试的部署流水线
> 一键回滚,因为周五总会有部署
> 零停机部署,因为您的客户没有维护窗口
> 功能标志,这样您就可以在不发布功能的情况下发布代码
> 针对周一早高峰的自动缩放
> CDN,这样应用程序在新加坡也能快速加载
> DNS、SSL 证书,以及不会在周日过期的续期
> 后台作业队列,这样缓慢的工作就不会冻结页面
> 带退避的重试,这样一次不稳定的 API 调用就不会变成丢失的订单
> 为每次重试都失败的作业设置死信队列
> 在您添加第二台服务器那天不会运行两次的 cron 作业
> 缓存,以及在数据更改时清除该缓存
> SPF、DKIM 和 DMARC,这样您的密码重置邮件就不会进入垃圾邮件文件夹
> 处理每封事务性电子邮件的退信和投诉
> 存储规则,这样您就不用再为保留 2021 年的临时文件付费
> 成本警报,这样失控的代理循环当天就能被发现,而不是在账单上才发现(我们为此花了 1,382.59 美元才学到这一点)
> 书面记录并每年测试一次的灾难恢复计划
> 如果您的合同承诺了单个区域无法提供的正常运行时间,则需要第二个区域
> 您可以在凌晨 3 点搜索的结构化日志
> 将同一个 bug 分组,而不是给您发送 4000 封电子邮件的错误跟踪
> 来自您自己网络外部的正常运行时间检查
> 经过调整、不再为无关紧要的事情呼叫人工的警报
> 关于延迟、错误率和吞吐量的仪表板
> 针对跨所有服务的单个缓慢请求的追踪
> 值班轮班,以及一个会接听电话的人
> 运行手册,这样值班工程师就知道“队列深度危急”是什么意思
> 能够带来改变的事后复盘
> 客户在给您发邮件之前会查看的状态页面
> 由了解逻辑应该做什么的人编写的单元测试
> 针对您所依赖的每个第三方 API 的集成测试
> 针对注册、结账和其他为您赚钱的流程的端到端测试
> 在发送发布邮件之前进行的负载测试
> 看起来像生产环境但并非生产数据的测试数据
> 回归测试,这样修复 bug 41 就不会让 bug 12 重现
> 在您最大客户的运营团队仍在使用的五年前的笔记本电脑上进行测试
> 无障碍合规,因为企业合同有此要求
> 订阅、升级、降级和按比例计算
> 失败支付重试和催款邮件
> 带有客户采购订单号的发票,因为没有它采购部门不会付款
> 销售税和增值税
> 退款、抵免和部分退款
> 与您计费金额(精确到分)相匹配的用量计量
> 包含您的计费逻辑从未预料到的自定义条款的年度合同
> 您的财务团队可以核对的收入报告
> 验证签名的 webhooks
> 会重试的 webhooks,并带有每次失败投递的日志
> 版本化的 API,这样您就可以在不破坏客户集成的情况下对其进行更改
> 客户可以创建和撤销的 API 密钥
> 既能保护您又不会阻止真实集成的 API 速率限制
> 针对第三方 API 在未通知您的情况下更改其响应格式那天的计划
> OAuth 令牌刷新,因为令牌会在最糟糕的时刻过期
> 客户可以测试其集成的沙箱
> 在每个到达模型的字段中防范提示注入
> 将客户和患者数据排除在离开您网络的提示之外
> 每个客户的模型支出上限,这样一个重度用户就不会让您的账单飙升
> 评估,这样您就能在模型更新导致您的答案变差时及时发现
> 针对模型提供商宕机那天的备用方案
> 针对模型被弃用那天的迁移计划
> 用于调试的提示和输出日志,但不包括您不允许保留的内容
> 对于 AI 所做的任何无法撤销的事情,都需要人工审批步骤
> 在酒店 wifi 上也能加载的页面
> 每个屏幕上的空状态、加载状态和错误状态
> 客户可以采取行动的错误消息,而不是“出了点问题”
> 当某个字段验证失败时,能保留用户输入内容的表单
> 在客户使用的每个邮件客户端中都能正常显示的电子邮件
> 用户可以关闭的通知
> 撤销功能
> 键盘导航和屏幕阅读器支持
> 翻译,并针对每个地区格式化日期和数字
> 符合用户预期的返回按钮
> 人类可以阅读的代码
> 对每次更改进行代码审查
> 分支策略,这样两个人就可以在不互相覆盖的情况下工作
> 每月升级依赖项,这样您就不会落后两个主要版本
> 在旧版本停止获得安全补丁之前升级框架
> 删除 AI 在前三次尝试中留下的死代码
> 拆分 AI 不断追加内容的 2000 行文件
> 书面记录的架构决策及其原因
> 能让新工程师在一小时内在本地运行起来的 README
> 为接手这项工作的人准备的文档
> 供您的运营团队使用的管理面板
> 支持工具,这样客户成功团队就可以在不打扰工程团队的情况下回答问题
> 客户可以阅读的更新日志
> 与代码实际功能相符的条款和隐私政策
> 公司名下的每个账户、域名和代码库,而不是构建原型的人的名字
> 大于一的“巴士因子”

哦,除了每天都要永远保持所有这些正常运行之外……您的氛围编程应用仍然需要懂行的人:

> 在 AI 编写的每一行代码发布之前进行审查(高级工程师)
> 在第二个客户破坏数据模型之前设计它(后端工程师)
> 解释为什么 AI 对一个 bug 的修复会产生两个新 bug(又是高级工程师)
> 部署、回滚、服务器和云账单(DevOps 工程师)
> 在凌晨 3 点支付停止时接听电话(值班人员)
> 在漏洞公开的那一周修补框架(安全)
> 向审计师说明患者数据是如何流动的(安全与合规)
> 测试 AI 声称已经测试过的内容(QA)
> 在不丢失一行数据的情况下对实时数据库运行迁移(后端工程师)
> 对会破坏其他三个功能的功能说不(技术负责人)
> 把“在我的笔记本电脑上能运行”变成“同时为每个客户运行”(架构师)
> 当编写代码的 AI 无法调试时,对代码进行调试(高级工程师)
> 一年后记住为什么要这样构建(当时在场的人)

……祝他们一切顺利 🫡

预约电话,发布 AI 原生应用:

如果您觉得这篇文章有用,请查看我们的运营 AI 转型指南。免费获取:

本文由 AI 翻译自英文原帖,技术名词保留英文。

查看 X 原帖

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新