上一篇:知名国产论坛,凉了!!!!
代码行数越少越好?读懂别人的代码很困难?如何编写出“完美”的代码?每天要坚持8小时编程?......拜托,这些编程误区程序员应该尽早知道!
以下为译文:
作为开发人员,你会听到许多有关“代码行数”的令人难以置信的疯狂理论——不要相信他们!以代码行数作为决策依据是一件非常荒谬的事情。在极少数情况下,代码行数可能还有那么一丁点意义,在绝大数情况下,代码行数什么都代表不了。根据代码行数做决策就好像按照页数评价书籍的水准。
有些人可能会认为,应用程序中的代码行越少,就越容易阅读。这句话只有部分正确,我认为代码可读性的度量标准包括:
如果减少代码行数会影响到上面任何一条,那么就有问题。实际上,基本上减少代码行数都会影响到上面的标准,因此总会出问题。不过,如果你能够设法满足上述条件,那么代码行数就是完美的,根本用不着统计数量。
1、语言没有好坏之分
除了PHP(开个玩笑)。
总是有人会说:
一言以蔽之,比较编程语言本身就是无稽之谈。它们是语言,又不是口袋妖怪。
别误会,语言之间的确有差异,只不过“一无是处”的语言毕竟是少数(尽管有很多过时的语言)。每种语言都有其独特的优点,从这个角度来说,语言就好像工具箱中的工具。螺丝刀能够胜任锤子做不到的事情,但是你会说螺丝刀比锤子好吗?(显然锤子更好使)。
以下是我认为在选择语言时,你应当考虑的核心因素(优先级从高到低):
2、读懂别人的代码是一件难事
读懂别人的代码是一件困难的事情。Robert C. Martin在“干净的代码”中谈到了这一点:
“实际上,读代码和写代码所花费的时间之比远超过10:1。在编写新代码的时候,我们一直在阅读旧代码。……[因此,]我们的代码应该易于阅读,易于编写。”
很长一段时间里,我一直以为自己不善于阅读别人的代码。随着时间的流逝,我意识到几乎每个程序员每天都在为阅读别人的代码而苦恼。
阅读别人的代码就像学一门外语。即使你很熟悉某种语言,但仍然需要使用别人的不同风格以及体系结构。而且我们一般都会假设写代码的人贯彻了一致性和可靠性,但有时并非如此,这确实是一个很难克服的问题。但是我发现了很多有帮助性的技巧。
阅读别人的代码可以极大地提高你阅读代码的能力。在过去的两年中,我查看了很多Github中的PR。每读一个PR,就会觉得阅读别人代码的能力又提高了一点点。Github中的PR特别具有帮助性,原因如下:
即使我在Github上浏览随机项目,我也会这样做。
在加入团队工作之前,有4年的时间里我这个开发人员都是“独行狼”。在大多数时间里,我会假设每位程序员编写的代码都是完美的。我以为稍加努力和假以时日,我也会编写出“完美”的代码。
以前,我曾经常常为此而感到焦虑。在加入团队后,我很快就发现没人能够编写“完美”的代码。但是,进入系统的代码几乎总是“完美”的,为什么会这样呢?答案就在于代码审查。
我们团队拥有非常出色的工程师。他们都是最有能力,最有信心的程序员。如果有人建议提交未经审查的代码,那么我们团队中的每个成员(包括我)都会群起而攻之。即使你觉得自己是下一个比尔·盖茨,你也会犯错。甚至都无需上升到逻辑上的错误,就连错字、漏字的问题都无法避免,这些都是你的大脑无暇顾及的问题,所以需要由别人来帮你检查。
努力与注重细节并乐于指摘你的代码的人一起工作。虽然刚开始听到批评时,你会觉得很难受,但这是持续改进的唯一方法。尽最大努力避免在代码审查过程中产生抵抗情绪,也不要发表针对个人的评论。努力做到对事不对人。
4、程序员的工作并不意味着每天要坚持8个小时的编程
一般的开发人员或“伟大的”开发人员每天需要做多长时间的编程工作呢?这是一个非常普遍的问题,但是从来没有人给出明确的答案。
不赞同这一点的人要么是个例外,要么公司应该珍惜他们。编程是一项耗费精力的工作,需要精神高度集中。要求程序员每天写5-8小时的代码是不近人情的做法。在极少数情况下,为了按时完成任务或为了加班费,有人会延长工作时间,但这种情况很少见。其实我这里说的“极少数情况”的意思是几乎没有。如果由于公司计划上的问题或招聘的人手不足而导致你加班,那么请不要容忍。
坦白来说,每天编写8个小时的代码,对你和公司都没有好处。如果你的老板有这种要求,那么只能说他目光短浅,因为从长期来看,这种高强度的工作对生产力和心理健康都有恶劣的影响。
请注意,我并不是建议你每天只工作4个小时。通常,我们应该把剩下的4小时用在如下工作上:
除此之外,我强烈建议你在白天的工作时间里定时休息并锻炼身体(即使只是短暂的锻炼)。事实证明,运动对缓解精神疲劳有很大的帮助。我发现,我在无法集中精力的时候,锻炼特别有帮助。
原文:https://stackoverflow.blog/2019/08/07/what-every-developer-should-learn-early-on/
感谢您的阅读,也欢迎您发表关于这篇文章的任何建议,关注我,技术不迷茫!
小编到你上高速。
· END ·
最后,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列面试题和答案,非常齐全。
正文结束
推荐阅读 ↓↓↓
1.不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事
5.37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...
6.IntelliJ IDEA 2019.3 首个最新访问版本发布,新特性抢先看