不要删除 - 就是不要

主要观点

  • 反对“软删除”,认为应关注业务场景和用户意图,而非仅依赖数据库的 IsDeleted 列。
  • 以营销部门删除商品为例,指出实际业务中不应简单地删除相关订单、发票等,而应根据具体业务规则处理,如产品停产、订单取消等。
  • 强调应建模任务而非数据,关注用户希望执行的任务,而不是对单个实体的技术操作,多个实体需同时考虑。
  • 提到状态的重要性,用相关业务状态替代技术上的“删除”,不同用户在不同时间需看到不同状态。
  • 规则和验证更为复杂,决定实体的下一步状态需考虑当前业务状态和上下文,可能涉及多个实体的检查和状态更改。

关键信息

  • 2009 年 9 月 1 日周二,读完 Ayende 关于反对“软删除”的文章后,作者认为应补充业务语义方面的内容。
  • 营销部门删除商品不应导致相关订单和发票消失,需考虑多个业务方面。
  • 用户常以“删除”表达需求,但实际意图可能是停产等,应提供更明确的用户界面表示。
  • 各种业务场景中,应关注任务而非数据,如订单取消、员工解雇、工作填充等。
  • 用明确的业务状态替代隐藏的技术“删除”状态,不同用户在不同时间看到不同状态。
  • 规则和验证更复杂,决定实体状态需考虑多方面,可能涉及多个实体。

重要细节

  • 以营销部门删除商品为例,详细阐述了可能涉及的多个业务方面及不应简单删除的原因。
  • 列举了多个不同业务场景下的具体例子,如订单、员工、工作等的处理方式。
  • 介绍了 Udi Dahan 受到多位业内人士的高度推荐,其在 SOA 等领域有深入的理解和卓越的贡献,能帮助解决复杂的架构问题等。
阅读 9
0 条评论