写点什么

碎碎念之「程序员的时间都花在了哪?」

用户头像
Justin
关注
发布于: 2021 年 01 月 29 日
碎碎念之「程序员的时间都花在了哪?」

先来看一篇有趣的论文,浙江大学的 Xin Xia 博士等人,分析了多家公司程序员的日常行为,写了一篇题为《测量程序理解:与专业人员进行的大规模田野研究》的论文,发表于 IEEE Transactions on Software Engineering。论文详细描述了获得数据的方法,并且定量地给出一个结论,程序员平常花在理解代码上的时间平均占 58%



是不是很意外,有没有很惊喜?


我知道编写的代码容易阅读很重要,但从来也没有过这么具体的数据。从这篇论文看,除了 58% 左右的时间花在搞明白代码是怎么工作的之外,还有 24% 的时间花在了在代码和文档里来回跳转上,真正用来「写代码」的时间只有大约 5%


Programs are meant to be read by humans and only incidentally for computers to execute.

——SICP, Harold Abelson and Gerald Jay Sussman


代码首先是用来给人读的,只是碰巧能被机器执行。我们写代码做设计,首先要考虑将来的理解成本。


程序员为什么花这么多的时间在理解代码上?很简单,因为他们要搞清楚状况,才能知道下一步怎么办。代码、设计是不是清晰,会极大影响别人(也可能是未来的自己)在理解系统上需要花费的时间和精力。


很多程序员会很在乎程序运行得有多快,完全无法理解 Python 这种会比「高效语言」慢上几十倍的编程语言为什么能得到普及,就是忽略了代码的理解成本如此高昂。很多时候他们会不假思索地花时间去「优化代码」,牺牲代码的可理解性,追求运行效率。殊不知过早优化是万恶之源


任何有点规模的程序都不可避免地有 bug,也很可能在未来需要扩展或者修改。几年后,你的超级高效的代码将不得不由一些可怜的家伙来维护。如果这个可怜的家伙无法理解你的牛逼代码的作用,他也会留下一段超级高效的代码,但不幸的是,这段代码并没有做它应该做的事情。如果那个可怜的家伙恰好是未来的你自己,那么正义将得到伸张。至少……我自己早年干过这事。


说了半天意外,惊喜呢?


如果你是产品经理,留点时间给程序员还技术债,你会惊奇地发现开发速度变快了


参考文献:


发布于: 2021 年 01 月 29 日阅读数: 78
用户头像

Justin

关注

对世界好奇,对自己好奇 2018.04.14 加入

TGO 北京会员,乐城堡联合创始人

评论

发布
暂无评论
碎碎念之「程序员的时间都花在了哪?」