------------恢复内容开始------------程序员
帮助我写一个电商网站,像淘宝同样,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%。
这些开发人员可能还要花不少时间写日志,写周报,在中国:
这些代码体现了个人社会情怀,包含了个人哪些精髓技术和商业思惟,最大程度地实现了客户价值,知足了用户需求,为团队留下了宝贵的技术财富,为实现数字化经济增添了一份力量,拉通了团队,对齐了目标,解决了痛点,赋予了行业,赋予了生命。这是一个很是棒的程序员!
花上两天的时间,你会不会以为我很高效?
------------恢复内容结束------------