关于过度设计和业务逻辑的错误

前段时间对一个博客进行设计,在关于封装查询语句的函数上面做一个错误的决定,那就是过度设计,原因是这样滴:

因为需求没有完全弄明白,也不知道以后会不会添加别的查询判断语句,所以在函数的参数,返回值等方面抉择的类型为不定型interface{}也就是C的(void*),当时是这样想滴:以后就算修改了,或添加了查询条件语句也没关系,因为参数为不定型,所以函数调用的时候没有任何的影响,只在函数内部进行修改就可以了。

但是但是,,,,,,,

事实证明决策是错误的。


分为四种情况:

1.  以后确定不会改变。

2. 以后应该不会改变。

3.以后 不确定会不会改变。

4.以后应该会改变。


第一种情况下,不用多说,代码硬写就可以了,不用考虑灵活性(扩展性?)。

第二,三种情况下,比较难把握,以前有个误区也在这里,也是大部分人经常的错误所在:选择为以后的扩展做努力。可以展现技术水平嘛,但事实正确的做法是:在这种情况下应该去假设以后不会改变去做设计,为什么呐?原因在于,未来的可变性太多,就算是现在去做了很复杂的去适应未来,到未来到来的时候,大部分设计都会失败的。二点是:简单的实现,会节省时间,减少bug,代码清晰等各种好处。但是为什么好多人大部分都会选择过度设计呐:因为可以满足技术欲望,程序员的通病啊。

第三种情况下,毋庸置疑要选择考虑扩展性的设计啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值