所谓可以解释的设计是指可以解释给别人为什么要这样设计的原因, 如果解释不出来原因,那么这个设计就不是好的设计。在有些企业,比如我的公司,一个设计必须要面对质问和怀疑,如果一个设计不能够很好地解释,那么就不能够被认可为好的设计。因此,在做设计时,一定要思考如何解释你的设计。
那么如何解释你的设计呢?应当从几点出发:
1、解释这样做有什么好处
可以这样说:
这样做能够实现xxx功能;
这样做能够减少重复;
这样做能够提高可读性;
这样做对性能没有影响。
2、解释“不”这样做有什么坏处
可以这样说:
不这样做,以后如果要增加xxx,就不行了;
不这样做,以后如果要修改xxx,就很麻烦了;
在解释设计的时候,一定要从实际出发,不同的背景,要求是不一样的。同一个规则,在一个背景下是有用的,而在另一个背景下就可能没有用了。比如,对于需要高效的程序,效率就是关键,而可维护性就在其次;而对于需要应对需求快速变化的程序,其可维护性、可扩展性就是要重点考虑的了。像通用的设计原则,比如,松耦合、隐藏细节、紧内聚,必须能够在现实的实现场景中解释其所带来的好处,否则也无法说服别人。很多情况下,是鱼与熊掌不可兼得,所以一定要从实际的情况出发,在相互矛盾的两者之间找到平衡点。