把只读状态写到了事务字段里,明显不符合单一原则。一个字段怎么能表示多种意思呢?如果一开始就不违反单一原则,即便没想到并发冲突问题,也不会出现问题。

现象

比如做只读,将只读状态写到了事务字段里。

这明显就不符合设计原则,单一原则。

一个字段怎么能表示多种意思的呢?

开始觉得事务字段已经在页面展示了,加个只读前端自动展示就完事了。

结果事务字段还有其他的作用,防止并发操作。

和上面一样,打补丁按照流程,没有按照对象,那在处理事务字段的判断里跳过 readonly 的操作。

结果根本改不完啊,只读检查和所有流程耦合在一起,简直了。

根因:违反单一原则

如果一开始就不要违反单一原则,即便没有想到并发冲突问题,也不会出现问题。

小结

  • 符合设计原则,可以规避一些想不到的问题;
  • 一个字段不能表示多种意思,违反单一原则;
  • 打补丁要按照对象,而不是按照流程;
  • 只读检查和所有流程耦合在一起,根本改不完;
  • 如果一开始就不违反单一原则,即便没想到并发冲突问题,也不会出现问题。