我是程序员:你只加了两行代码,为何用了两天时间

------------恢复内容开始------------程序员


 

帮助我写一个电商网站,像淘宝同样,3000预算还不够吗?但能够再加一点。”帮助我写一个像百度同样的搜索引擎,一个输入框应该不会花多少时间吧?"我这方面的需求有点复杂,帮我写一本随手机主题颜色变化的智能后盖,钱不成问题。"编程

不管你是一家正规的网络公司,仍是一名兼职的开发人员,你都会或多或少地遇到各类各样的产品需求,客户需求,老板需求,他们都赞成:这个需求很简单。网络

这是否是真的呢?测试

"只要两行代码,为何要花两天时间?"网站

这个问题看起来是有道理的,可是在其背后有几个荒谬的想法:搜索引擎

 


 

代码行数=工做量代码行数=价值代码行之间没有什么差异,相互等价很明显,以上三个都是废话。设计

开发人员面对这样的指责,翻白眼之余却也难免怨天尤人,软件开发是将现实世界映射到虚拟世界的魔术,回顾咱们所作的改变,有太多的理由能够解释为何两行代码要花上两天。日志

因为问题报告对再现方法的描述不够清晰。blog

有时咱们要花费数小时才能可靠地重现某些问题。赶上这样的状况,一些开发人员会马上联系问题报案者,要求对方提供更多的细节。可是有些开发人员不喜欢修复 Bug,所以缺少信息就成了甩锅的好方法。索引

因为所报告的问题是关于功能的,因此我并不熟悉这些功能。

 


 

这可能涉及一些功能,一些开发人员不多使用,所以并不十分熟悉相关细节。在这种状况下,开发人员须要花费更多时间来了解如何使用功能,尤为是这种功能 bug与软件交互的具体过程。

这是由于我花了时间研究问题产生的真正缘由,而不只仅是流于形式的症状。

若是一些代码产生错误,直接将其封装到 try… catch语句中,这样能够有效地抑制错误。没有错,没有问题,对不对?确定不行对于负责的开发人员来讲,掩盖问题和解决问题是两回事。隐藏错误很容易引发其它意想不到的反作用。在将来的一个紧要关头,我不想再为一样的错误而烦恼。

这是由于,除了报告的复制步骤外,我还研究了其余可能引发相同问题的状况。

尽管能够很容易地使错误重现,但一组重复步骤每每不足以揭示引起错误的深层缘由。在找出这种根源因素的同时,研究一切可行的解决办法,才是真正有价值的分析洞见。它可能涉及到代码的实际工做方式,多是在其余位置有其余须要解决的问题,也多是某些代码不一致的情况(致使某个代码路径发生错误,而其余路径没有发生错误)等等。

因为我花了一些时间来验证其余代码是否受到相似问题的影响。

假如这个错误是由一个 bug引发的,那么一样的错误应该出如今代码库的其余地方。如今有了用户报告,最好是完全检查一下。

因为找到了错误的根源,我想用最简单的方法来解决问题,保证反作用被控制到最低的风险。

因为我彻底测试了这个变化,并确保它在不一样的代码路径下解决了相同的问题。

我不想让别人对修复测试感到麻烦事。在此以前,我不但愿再有相似的错误发生,所以我不遗余力确保问题获得完全解决。环境转换既复杂又乏味,我但愿本身的工做可以使全职测试人员再也不须要作本质上“彻底相同”的更改。

有什么比修复 bug更麻烦的事情吗?这意味着重复修复相同的 Bug。您看到的只是我添加的两行代码,而没有看到我在背后分析为何要添加这两行代码,以及为何这两行代码会这样实现。

天天只写几行代码,这是怎么回事?

 


 

不少团队的绩效考核指标都曾经爆出过“代码行数”的问题,部分测试人员以查“Bug”数为依据,各大因特网大厂也曾将团队中动辄上亿行代码做为品宣卖点。

它让外界产生一种错觉,认为代码行的数量就是衡量程序员的技术能力、工做成果的万金标准。能写的多了,就表明写的好了?莫非是那种浓密的 if… else冲击波,还能像写文章时那样用排比句式来形容?

林克斯看着想打人。

实际上,程序员的工做产出与代码行的数量并无很大的关系,并且程序员的工做时间并不局限于写代码。

去年,外国研究机构 ActiveStates进行了一项调查,结果显示,80多个国家的开发者中,有数千人来自美国和中国。

开发人员平均天天编写程序的时间不到4小时。

 


 

有38.8%的人在1250个调查样本中天天只花费2-4个小时来编程。这个结果和2018的调查类似,37%的人天天花2-4个小时来编程。与此相比,27.92%的人天天花5-7小时来编程,而在2018年的调查中有31%的人天天花5-7小时来编程。

更使人吃惊的是,在2019年,61.52%的受访者花费4小时或更少的时间进行编程,而在2018年,只有51%的人花费4小时或更少的时间进行编程。另有10.56%的人花费8小时或更多的时间进行编程,比2018年的19%降低了近一半。

开发人员编写代码所花费的时间愈来愈少了,那么时间都到哪里去了?

 


 

百分之四十四的人说他们必须把时间用在各类活动上,包括会议,测试,维护,甚至是社会交往。一个最耗时的活动是软件设计/体系结构,占11.36%,而后是参加 standups/会议,占8.24%。

这些开发人员可能还要花不少时间写日志,写周报,在中国:

这些代码体现了个人社会情怀,包含了个人哪些精髓技术和商业思惟,最大程度地实现了客户价值,知足了用户需求,为团队留下了宝贵的技术财富,为实现数字化经济增添了一份力量,拉通了团队,对齐了目标,解决了痛点,赋予了行业,赋予了生命。这是一个很是棒的程序员!

花上两天的时间,你会不会以为我很高效?


 

点击了解更多资料,更有免费开源项目和课程等你观看哦!

------------恢复内容结束------------

相关文章
相关标签/搜索