开发者资讯

 首页 > 开发者资讯 > 程序员生活 > 高效的程序员是聪明和懒惰的

高效的程序员是聪明和懒惰的

分享到:
【字体:
导读:
          好的软件开发过程应该是懒惰的软件开发,亦称耐心开发,原因是开发人员在写代码之前会先将时间花在透彻地考虑各种解决方案上。这是懒惰开发的主旨,即在不了解之前就不会开始写代码。这个负责任的态度减少了他们所需要写的代码量。

我之所以要用聪明和懒惰来形容高效的程序员,原因有以下几点:

  • 聪明是因为能找出问题的正解
  • 懒惰是因为不愿写多余的代码(即不会长时间地坐在电脑前)


好的软件开发过程应该是懒惰的软件开发,亦称耐心开发,原因是开发人员在写代码之前会先将时间花在透彻地考虑各种解决方案上。

这是懒惰开发的主旨,即在不了解之前就不会开始写代码。这个负责任的态度减少了他们所需要写的代码量。

主要需要做到以下几点:

  • 真正了解需求、获得产品管理,关键是要明确什么才是实际要求
  • 确保与团队中其他开发人员之间的顺利对接

这些过程都是需要时间的。然而,不少开发人员往往一拿到问题就开始急于敲代码,然后再花费大把大把的时间修改代码。

事实上,只有5%都不到的时间才真正是有生产力的。所以下回你要是看到某个开发人员将他100%的时间都紧盯着屏幕,不与其他人做任何互动,那么只能说你找来的程序员可不太好啊。
 

这是一个不好的迹象——如果开发人员总是写代码的话

高效的开发人员会时不时地检查对需求的理解,以确保与代码相一致。富有生产力的开发人员会经常与产品经理/业务分析员分析交流,也时常可以看到他们与同事和架构师出双入对。当然资深的开发人员也会因其自身丰富的经验而变得非常有效率。事实上,最好的开发人员与其他人相比:

  • 编写初始编码所用的时间约为1比20
  • 调试时间的比例超过1比25
  • 程序执行速度大概是1比10
  • 程序大小为1比5

然而,总的说来,随着时间的推移,开发人员的生产效率并没有随之而增长,即从成千上万的开发人员那儿可以证实,丰富的经验和生产力是无关的。事实上,我们的生产效率在过去50年间已经提高了8倍,所以,从总体上说,经验与生产力水平是不相干的。
 

为什么在代码上的懒惰会变得如此重要?

很多人很勤快,还没有好好理解需求就开始动手写代码。并且,迅速编写的代码往往不能很好的适应其他人的代码。而这一问题往往只有在集成代码的时候才能被发现,但是已经晚了。优秀的开发人员很有耐心,他知道快速编码的风险。
 

开发人员在心理上很重视他们的代码

差的开发人员往往不愿意去改变自己写得不好的代码。他们只会选择增添更多的代码来弥补不足,而不会重写不理想的代码。更糟的是,他们往往会去责怪其他人有不良的代码,而不愿意自我检讨。在他们手中,最终只会导致一个严重缺陷和不稳定的系统。

当然,好的开发人员也会写出差的代码,非最优的代码。所不同的是,他们愿意认识自己的不足,并且对于有问题的部分:

  • 如果代码大致还是能正确运行的,那就重构代码
  • 否则,就重写代码

当开发人员生产并维护了非最优代码,随着时间的推移,那么修改这些代码就会变得越来越难。这是因为你的同事需要在这些代码接口上写代码,然后再创建繁杂的接口等等使用这些非最优代码。并且随着代码库的发展,会有更多更多的代码是依赖这些原始代码编写出来的。故而,后面写的代码再怎么好也几乎增加不了代码的稳定性,也不能对略有改动时bug增殖的情况产生影响。总之,开发过程会变得越来越慢、越来越难。
 

所以,如果有什么疑问,那么不妨偷个懒,晚点再写代码,须知,磨刀不误砍柴工啊! 

分享到:
给想当程序员的大二学生的建议
  最近我在Groupon公司的一项新职务是为公司招募优秀的开发人员。我是Groupon开发团队的代言人,负责发布招聘信息、回答问题等。过去的一周,我对两个询问夏季实习工作的学生进行了回复。 下面是我在回复他们的邮件中的感觉值得公开发表的一些建议: 如果你在大二的时候就已经开始接触外面的公司,...
移动开发者必须了解的三大职业趋势
2014年移动互联网行业风起云涌,各大互联网公司纷纷发力。百度移动流量首超PC,天猫双11移动端交易额猛增至243亿;滴滴快滴上演红包撕逼大战,陌陌上市前夜遭网易炮轰。移动互联网的爆发性增长,使移动开发人才晋升为“稀缺资源”,即使近期正处于传统意义上的招聘“淡季”,但企业对移动人才的招聘需求依然强劲。据CSDN JO...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……