做学习管理系统,先把角色和状态连起来

先想清楚这条记录会经过谁

做列表和表单时,很容易先把字段写出来,再补按钮。但在课程审核或学生申请这样的场景里,真正决定页面行为的是角色和状态。

以课程为例,编辑者录入内容,审核者决定是否通过,读者看到的是已发布版本。同一条记录在不同阶段应该允许哪些操作,需要在接口设计前想清楚。

按钮和接口需要说同一件事

前端根据角色隐藏不适用的操作,可以减少误点;后端仍然要检查权限和记录状态。否则界面看着很规整,换一种方式请求接口却能绕过流程。

有些数据需要保留发生时的样子

云阶学堂中的订单使用快照保存分成信息。当前配置改变后,旧订单仍然保留原来的依据。类似地,审核结果和当时的内容也值得分别记录,避免后续修改把历史含义带着改变。

后台任务也属于业务状态

双擎中的视频处理和报表由 worker 执行。提交成功只说明任务被接收;处理完成、失败和重新处理还需要各自的表达。把这些状态明确下来,页面上的提示也会更自然。

这些项目让我反复回到同一个问题:数据不仅有字段,还有一段经历。把这段经历讲清楚,页面和接口往往就比较容易接上了。