Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

底层代码为什么要追求可读性?

  最近 left-pad 件事比较火,代码也被好多人喷。就代码本身而言,确实不是高性能的实现,喷性能是可以理解的。但是喷可读性我就不理解了,作为一个底层代码,为什么非要有多么强的可读性呢?有时候为了性能考虑,写出一堆可读性不怎么高的代码也是很正常的嘛。
  left-pad 的代码虽然很烂,但也不至于到可读性差的程度。因为原作者使用了 O(n) 的实现方式,逻辑本来就简单到怎么写都可以。
  对于底层代码,根本就不用纠结什么代码可读性。我相信绝大部分人都能读懂 left-pad 的代码吧?而且一眼就能看出 Bug。如果谁读不懂,那就说明你根本不会遇到需要读这个代码的场景。就像没看过 node 源码也能用 node 开发东西一样,只要会用就好了,没有什么场景让你必须去读 node 源码。真正会读源码的两种情况一种是真正遇到框架级问题的,并且向了解 Bug 细节的开发人员(很多业务开发人员就算遇到问题也会直接绕过去,不想知道具体原理,当然也不可能去读源码)。另一种是喜欢装逼的开发者,比如我(你永远无法阻止一个想要装逼的人<del style="display: none;">,人活着不就是为了装逼么</del>)。
  会去读框架级代码的人一定是能读懂它的人,或者如果谁真心想读懂某个代码,即使可读性差也会把它搞明白。而且框架级的代码要考虑的东西远比业务代码多,性能、平台兼容性甚至系统资源占用都是要考虑的点。比如早期的 jQuery 为了兼容低版本 IE 就无所不用其极,这些代码哪有什么可读性可言?只能靠一行一注释来维护可读性嘛。又比如我之前做的某个东西,明明可以一个 Promise.all 优雅地并行处理,却偏偏碍于内存占用,使用更慢更繁琐的方式来解决。
  我觉得,底层代码不用纠结于代码层面的可读性,更重要的是性能和稳定性。大不了一行一注释,实在不行再单独写个文档嘛。
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^