业务逻辑的冗余

比如说,要判断本公司某员工是否为中国人,在系统中可以分别通过调用两种接口来获取结果:

  a.护照上写的是中国人 => 此人是中国人

  b.工作证上“国籍”一栏填了“中国” => 此人是中国人

这两个逻辑冗余了,因为它们可以解决同一个问题,在现实世界里,这是很现实的事;但在IT系统中,不应该让这两种逻辑同时存在。也就是说,要判断一个人是否为中国人,只能去查他的护照,不准通过其它途径来判断。

为什么要这样? 因为如果不这样的话,
两条冗余规则中一旦改了一条,除了该规则自己的调用者受影响之外,另一条规则的调用者可能也会有问题。 比如说,如果上面的规则b改成 [ 工作证上“国籍”一栏填了“中国” 或 "香港" =》 此人是中国人],那么我们除了要改一下b接口 and/or 它的调用者,还要注意一下 规则a  and/or 它的调用者: 香港人的护照也是中国护照吗? 是,则万事大吉;如果不是,那就要把a接口改一下,或者把a接口的调用者都改一下。

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.