06 · 开发 · 一张单走完

一个人做完全程,规则仍只有一份

全栈工程师在小范围里把同一张单的页面、接口和数据走完,但不拆掉事务和权限的底线。边界还在争时,他不做「能点」来固化争议。

同时打开的界面和接口
  1. 先对规则:状态、拒绝、幂等写在一处,页面和接口同时引用。
  2. 再走页面:错误原因可见,提交中不能连点。
  3. 最后对数据:失败回滚,重复请求不产生第二笔。
  4. 交给测试时,附上这张单的重放步骤,而不是只给一个地址。

全栈的特点是缩短交接,不是降低标准

小模块或需要快速验证的单据,全栈工程师可以同时改页面、服务和表。价值是一张单的上下文不被三个人各理解一遍。风险是他一个人决定把校验做在页面上。达希因此要求全栈遵守和前后端分工时同一条底线:库存以服务端事务为准,权限服务端再查一次,外部调用不塞进本地事务。少了一个人,不是少了这些。

他适合边界已经清楚、口径已经冻结的单。边界还在争,全栈做出来的「能点」会把争议固化成代码。这时应退回架构和产品,而不是继续把开关做进页面。他也要把自己的工作拆成可以评审的提交:先拒绝条件,再成功路径。一次提交混着改样式、改库存公式和改权限,技术负责人无法放行。

怎样避免全栈变成无人能接的私人系统

代码、迁移脚本、配置和运行说明要能被专人接手。不允许关键逻辑只存在于他的笔记本或本地环境变量。接口契约写下来,前端即使暂时是他自己,下周换人也不用猜。数据库变更走脚本,不在生产上手工改列。这些看起来像流程,其实是全栈岗位的职业特征:因为没人天然复核你的另一半,你必须把复核留在仓库里。

订货截单从按钮做到锁定

门店订货的截单一度没人认领,前后端都在等对方先定义字段。全栈工程师按需求表把路径做完:截单时间到后状态锁定,数量不能再改,重复提交返回第一次结果。页面上提交按钮只在待提交状态出现,服务端仍校验状态,防止直接调接口。他交给测试的步骤包含:准时提交、截单后提交被拒、重复提交、工厂未接单前撤单。四条都能重放,模块才算交出去。差异怎么关、夜班怎么超收,不在这一张单上重做。

后来专人接手时,没有再把校验挪回页面。这说明全栈交付的是同一份规则,不是一份只有作者能跑的演示。接手说明里他写清本地如何造一家门店、一张次日订货和截单时钟。造不出来的环境,测试就无法重放。脚本要能从空库建出门店、物料、权限和截单时间,再执行提交。别人接手时先跑这个脚本,看到和他一样的拒绝,再改代码。没有这条脚本,所谓全栈交付只是把前后端的复杂度藏进了一个人的电脑。本地数据库如果少一个截单时间约束,他的电脑上永远复现不了锁定。约束放进迁移脚本,让测试环境先失败,而不是让生产先失败。

边界还在争时,他不做「能点」。截单时间还没签字,就把锁定做进页面,争议会固化成代码。这时退回产品和架构。一次提交不混着改样式、改截单公式和改权限。代码、迁移、配置和运行说明要能被专人接手,关键逻辑不许只存在于笔记本。接口契约写下来,下周换人也不用猜。库存事务、权限再校验、外部调用不塞进本地事务,这些底线和前后端分工时同一条。少了一个人,不是少了这些。

回到时间线

有一张单希望同一个人把它走完

规则清楚时,全栈可以缩短交接。