check 和修复,要从大流程上就分开
check 有很多项,每个项都有修复。check 是一条线,修复是一条线。不要在 check 中发现某个项有问题就进行修复,而是要等 check 完再调用修复。 核心:check 和修复职责分离 check 有很多项,每个项都有修复。 那么: check 是一条线; 修复是一条线。 不要在 check 中,发现某个项有问题就进行修复,而是要等 check 完,再调用修复。 修复的里面比如也包含 check,但是这不能代替 check 流程。 因为有些情况,只需要 check,最典型的是告警和健康状态。 check 就得响应迅速,迅速告警。 里面掺杂了修复,有几个问题 健康状态不好管理:难道项目修复前是不健康,修复后改成健康,那下一个检查项呢?这样变来变去,很不稳定,上层没法用; 代码零散:就算在流程里更新健康状态,那得多零散,代码处理也不太好; 响应不及时:修复操作有的很耗时,影响 check 的效率。 检测和修复完全的职责分离 健康状态是检测修复。 那么修复的流程,即便修复完成,也不要管理健康状态。 下一次检测流程自然会更新健康状态。 小结 check 和修复要从大流程上就分开; check 是一条线,修复是一条线; 不要在 check 中发现某个项有问题就进行修复,要等 check 完再调用修复; check 就得响应迅速,迅速告警; 检测和修复完全的职责分离,修复完成也不要管理健康状态,下一次检测自然会更新。