适当超前设计,避免过度设计
超前设计本质是预见到未来可能的需求,提前进行针对性设计,使得程序结构更容易适应将来的需求,改动较少,从而降低总体成本。
过度设计则是对未来需求进行了错误的估计,白白做了额外的工作,并没有命中未来的需求;有时候程序员甚至为了炫技,为了使用某种技术而增加没用的功能。
如何避免过度设计?要靠经验。经验从何而来?还是得懂业务。如果你不了解行业、不了解客户、不了解业务场景,你就无法预见未来可能的需求,只会做出想当然的超前设计。实际上,一项需求将来出现的可能性,产品经理更有发言权,程序员如果感到需要做超前设计,应该和产品经理探讨一下。
超前设计是会增加成本的,它本质是一种赌博,用今天增加的投入来赌明天的节省成本。在大环境好的时候,对超前设计的容忍度较高,比如半年甚至一两年后才命中需求,也可以接受;而在当今的普遍降本务实的大环境下,超前设计更应该慎重,因为如果消耗的成本太多,你的企业可能活不到命中需求的那一天了。