在《关于最小化设计(尽早实现)的一些想法》一文中,我们清楚了什么是最小化设计(尽早实现),但是只知道What还不足以让我们正确的实施它,那今天的话题就是When/Where--时机。
上文我们提到了最小化设计(尽早实现)的两个方面,抽象和实现,在此我们也同样分开讨论。
1、抽象的时机。
日积月累的丑陋设计(违反原则的设计)会腐蚀整个系统,到你不得不进行清理的时候,工作就不仅仅是擦擦盘子那样简单了。
因此,抽象是在第二次实现(这符合“同样的实现绝不会进行第三次”的原则)和第一次变化(变化通常会带来第二次实现)的时候进行,即,当变化的需求“弄脏”了我们的设计,那么就需要在两次实现之上建立抽象,以防止同样的变化再次“弄脏”设计。
2、实现的时机。
实现只需要在新的增加点第一次出现(比如一个新的功能点、)的时候进行,够用即可(能满足新的变化点即可)。当然,对于新的增加点所带来的设计上的影响(比如带入了变化,即第二次实现)则触发了抽象的实施,这不是实现的工作。
认识一个事物,我们不仅需要知道What、Why、How,还需要清楚When和Where(WWWWH原则),而后两者则是能正确发挥其作用的关键,对于最小化设计(尽早实现)也是如此。