[ LeftPad事故背景引入 | 青训营笔记]

100 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

一、本堂课重点内容:

  • 代码写作关注事项
  • left-pad 事件背后的代码规范

二、详细知识点介绍:

1. 代码写作关注事项

写代码最应该关注的是代码的使用场景。

当一段代码较为敏感,需要被多次反复执行,一些笨办法的效率反而比较高。

例如,在渲染页面时,要达到60fps的帧率,某些代码就需要在一分钟内执行60次,因此,为了判断一个2d矩阵是否单位矩阵,一个一个比较的效率要比for循环高。

当年的leftpad事件:

leftpad是npm中的一个模块,用于补齐字符串长度,根据字符串长度,在前方补上相应个数的0。

image.png

后来这个函数被下架,许多对这个模块有依赖的库无法使用,导致很多人吐槽:

npm模块粒度: 为什么一个这么简单的leftpad函数需要独立为一个模块?

代码风格: 代码不够简洁。

代码质量/效率: 代码效率不够高。

优化后的代码:

优化方法1:使用了repeat方法,代码更简洁,效率更高,性能更好

image.png

其中repeat采用了快速幂的方法,使循环的次数减少,提升了效率。

image.png

优化方法2:先计算循环次数,然后循环得到str,再用subString得到结果。使用快速幂提高了性能。

image.png

image.png

但是由于leftpad方法一般都用来做较短字符串的补齐,因此性能优化的意义不大。

2. left-pad 事件背后的代码规范

对于基础的方法,例如leftpad,也可以进行一些性能的优化,但是由于对于它的使用场景来说,优化的意义不大,性能提升的幅度微小到可以忽略不计,所以应该从代码可读性的方面来研究如何把代码实现得更好。

因此,代码的编写要注意根据使用场景进行适当的调整,而不是用统一的标准或者规范来决定代码写的是否出色。

三、课后个人总结:

通过这节课我认识到了,代码写作规范要根据使用场景进行变化,代码并非越简洁越好,也并非效率越高越好,要根据使用时的需求进行适应,并没有统一的代码标准。