吃"软饭"的一些不良思考习惯

1. 认为“简单原则”,就是不加认真思考,制作最简单易于实现的系统。

殊不知真正的简单是深思熟虑之后得到的结果。要多视角考虑,并且,必要时还需要跳出来思考,避免钻牛角尖,这样,才可能拿出真正简单有效的方案。

2. 对于难以实现的需求,而不是认真客观地认识和挖掘他们,然后根据可用的技术和资源,找出合理的解决方案,而是否认这些需求的存在。

这样往往实现的功能不能满足真正的需求,导致在系统的各个方面都要处理特殊问题(Special Case),这样,一个系统充满处理特殊逻辑的代码,系统开始变得不易维护和扩展。


3. 每次使用算法,就自认为需要处理的数据量肯定巨大,性能要求极高。

前不久,同事为了设计一个需求,需要去除数组里为空的数据和重复的数据,为了得到极好的性能,进行了大量的研究。然而这个功能并不常用,而且数据量不大,数组的元素经常是少于3个的,最多也没有多少,结果花费了大量时间,做出来的东西对于处理这种极少量的数据反而性能并不理想。


4. 往往纠缠于那些不经常使用的功能,而经常使用的功能考虑不足。

出现这种问题的原因是:因为经常使用的功能相对于那些不经常使用的功能稍微简单一点,这样,为了那些不经常使用的功能改变了系统、设计结构,不经常使用的功能易于实现,而经常使用的那些功能却难以实现,影响了正常功能的使用。


5. 认为使用了面向对象的语言,就设计出了面向对象的系统。

其实不然,大多数系统仍是过程式思维设计出的结构,未能使用到面向对象带来的易扩展,易维护,易重用等好处。


6. 认为使用了设计模式就是好的设计,拼命地把各种学到的模式生搬硬套到系统。

刚开始还从需求入手,但是逐渐地,为了使用设计模式,使要解决的问题偏离和真正问题,臆想出不适合的或者根本不存在的需求。


7. 我们需要的是有智慧的程序员,而不只是聪明的程序员。

聪明的程序员会把某一方面做到了极致,而有智慧的程序员还需要从各个方面做权衡,最终得出合适的解决方案,不仅Think,还需要Think Different(不是Think Differently):

I. 从系统的的各个方面,不同视角看待问题。

II. 从目前的各种资源考虑,包括人力,物力资源。

III. 从发展趋势考虑,设计可以扩展,容易改变的系统。

IV. 跳出以前思考问题的固定思维模式。

当一个接口的实现里充满了对于各种各样的special case处理,而不能跳出这些方面,对这些special cases进行更为泛化的分析,给出更为泛化的设计。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值