我有一个复杂的系统设计。 我有两种方法:两种方式来设计复杂的系统:自顶向下VS自下而上
自上而下:我会设计很多的接口和契约。之后,我将实现这些接口,并编写一个原型来验证设计。
自下而上:我会编写代码让系统运行。 Afterwords,我会从实体代码中提取接口和合约。蒸馏的接口和合同是我的设计。这是规则“使它运行,使其正确”。
什么是更好的方法?从我看来,我会选择自下而上。由于自顶向下非常困难,所以没有人可以在高抽象层次上设计很多接口,至少对我来说很难。当我编写可靠的实现来验证最初的设计时,有许多不合理的事情迫使我从头开始重新设计。当我使用自下而上时,我感到相当“安全”,它至少可以运行。