我最具争议的软件观点之一是:你的睡眠质量和精神压力远比你使用的语言和你遵守的实践来的重要的多...

原文链接:Link

我最具争议的软件观点之一是:你的睡眠质量和精神压力远比你使用的语言和你遵守的实践来的重要的多。其他任何东西都不能跟这两样相比:类型系统不能,TDD也不能,正规软件方法不能,任何东西都不能与之相比。

下面我来解释一下为什么。

说到任何提高软件质量的技术,我跟你保证:所有能找到的技术都是有人说好有人说不好的。它们或许有相应的布道者,但实际的严格的研究和一些试验还有就是案例的研究能够看到一个现象,那就是大部分的技术都还是没有定论的。

就拿编程语言来说:通过github上大量的案例研究我们并不能看出编程语言能够减少代码缺陷的。这里有一份报告(https://arxiv.org/pdf/1901.10220.pdf)。

测试驱动开发(TDD)?研究结果也是好坏参半。它可能是为了减少缺陷而努力(http://www.sserg.org/publications/uploads/04b700e040d0cac8681ba3d039be87a56020dd41.pdf)。但也可能这根本就不能减少缺陷(http://softwareprocess.es/pubs/borle2017EMSE-TDD.pdf)。

代码整洁(Clean Code)?这或许能够给代码带来一些新特性,但是这也可能使得Debug更难(https://www.duo.uio.no/bitstream/handle/10852/51127/master.pdf?sequence=1)。

根据合同来设计?希望你能找到这么做的依据。

代码审查(Code Review)?对的,这个真的有用。

现在你可能会说任何的研究都是有缺陷的,或者研究过程有太多的不确定因素,或者是否有效果只会在不同的具体情况下才会出现。所以结论就是:任何技术只在具体场景中才有起作用,并且这个作用是很小的。

或许这些技术效果是明显和巨大的,只是我们的研究在一定程度上不起作用。又或者它只是在软件工程领域收效甚微。

除了:

有些东西我们知道它有很巨大的影响在所有的领域。

例如:睡眠。

24个小时不睡觉的新手软件开发者,它的开发技能就只剩下一半了。

长期的睡眠时间少于7个小时的会导致一个人在所有的精神测试中,成绩大幅下降。

虽然人们不能说出具体在什么时候睡眠的缺少会导致能力的下降。

超负荷工作同样会有巨大的副作用。

如果你一周工作50个小时,那么经过8到10周之后,你的产出会比一周工作40个小时的人少。

压力水平也能影响一个人的生产力。

快乐的开发者解决问题的速度更快。

这些发现可以应用到任何行业领域。健康和心情上的影响就更大了。

一方面,我们有大量的研究发现在很多不同的领域:睡眠,工作强度,压力水平都能对竞争力和生产力有巨大的影响。

另一方面,我没有证据表明这些是不起作用或者是没有定论的。

对我来说,这简直太赞了。这帮助我们提高。我们最宝贵的礼物就是思考的能力。我们的局限不在是使用Rust语言还是Haskell语言,或者是使用Scrum还是kanban,而是我们因为睡眠不足和压力问题能承受多大的负担。

没有任何的方法,工具和语言能跟我们的精神一样重要。如果你想写好代码,首先你就要是个健康的人。其他的都没有这个重要。

除了代码审查,代码审查真的有效。

转载于:https://www.jianshu.com/p/a5bc1343ecdf

猜你喜欢

转载自blog.csdn.net/weixin_34242658/article/details/91146508