第492期|改善代码可读性的5种方法
你好,这里是卖桃者说。今天和你聊聊如何改善代码可读性这个话题。
代码的可读性是衡量代码质量非常重要的标准之一。如果你写的代码很容易读懂,那么 Bug 也就比较难隐藏,即便出现 Bug,修复起来也相对简单一些。相反,如果你写的代码可读性很差,即使它的可扩展性很好,也称不上是高质量代码。
当然,什么样的代码才算可读性好,每个人的评判标准都不大一样。这就好比我们去评价一本小说写得是否精彩,本身就是一个很难量化、非常主观的事情。不过,有一些方法可以帮助你的代码做出一些改进,让代码的质量越来越高,越来越易读。我在这里和你分享 5 个小方法,希望能对你有所帮助。
1. 重用会多次使用的内容
相信你一定听说过 DRY 原则,它的英文描述为:Don’t Repeat Yourself。中文直译为:不要重复自己。将它应用在编程中,可以理解为:不要写重复的代码。这条原则可以帮助你预防代码重复的问题。
很多人喜欢一遍又一遍地写一个函数,正确的做法是,你只编写一次,然后在需要它的各个位置重复使用它就可以了。如果你需要更改这段代码的话,只需要改动一处位置就行了,用不着把修改好的版本复制粘贴到各个地方。
不过需要注意的是,随着代码被重用的次数越来越多,DRY 原则会让你引入复杂性,如果你需要更改被多次重用的代码,可以针对这部分代码编写测试。
2. 避免制定通用的解决方案
可重用性、可读性和可维护性彼此之间既是朋友也是敌人。之前提到,当你开始在自己的代码中践行 DRY 原则时,你就会引入复杂性,这个时候代码的可读性水平可能就会下降了。
因此,你在构建功能时不要想着先做一个通用的解决方案,你可以先从简单处入手,并对它们进行多次迭代,保持代码的可读性和可维护性。如果你必须要制定通用方案的话,一定要保证这些方案易读、易维护。
3. 尽可能减小模块、类或组件的大小
这一条很好理解,因为小段代码更容易测试和维护。当你为一款应用程序构建一些新功能时,最佳的解决方案就是先拆分成许多较小的模块、类或组件。
这就好比,建筑工人在搭建高层建筑时,也是从一个个较小的单元开始拼装的,而不是一下子就把整幢大楼都造好,然后设法安装到地基上。
其实大多数现代库和框架都分成了一些较小的构造块,而不是打包成单个文件,像 Angular、React 和 Vue 这样的 JavaScript 库和框架甚至都采用了组件的概念。
4. 为你的代码自动化执行一些规则和准则
要想编写出可读和可维护的代码,一方面,你要关注代码的架构,另一方面,要关注代码的样式。最好的解决方案就是,尽可能让这些代码样式规则和准则自动化。许多 IDE 都集成了这种功能,或者可以通过插件安装。
此外,网上也有许多适用于某些特定语言的工具,比如适用于 JavaScript 的 Prettier 等等。
5. 就算只有你一个人,也要像在多人团队中一样编写代码
最后一点非常重要。简单来说就是,要想提高自己的代码可读性,就要想象着自己的代码会有很多人阅读和修改。
这背后的原因很简单。我们很容易理解自己写出来的代码,甚至有些特定内容只有自己才看得懂,但可读性好的代码一定是别人也能轻松读懂的,这样才利于其他成员的协作和维护。
一个简单的检验方法是,当你写完一段代码之后,把它发给自己的朋友,看看对方是否理解。收到负面反馈也很正常,这说明你的代码在提高可读性上还有很长的路要走。
正如推文科技技术 VP 郑晔老师在《代码之丑》专栏里说的那样:
写代码是一门手艺,需要不断地打磨。一方面,坚持写代码,保持自己对于代码的体感;另一方面,保持对于代码的敏感度,不断思考对于代码的改进,寻找更好的写法。
经过一段时间,我总会发现代码中让我不满意的地方,这会成为新的驱动力,让我进一步扩充自己的知识,把新的理解注入到代码之中。每次拓展知识边界,与之相伴的都是极大的智力愉悦。也正是这种智力上的快感,让我得到了进一步前进的动力。一个正向反馈的循环就是这样逐步推进,让我在写了二十多年代码之后,依然乐此不疲。
好,今天的话题就先聊到这里,最后我们简单小结一下。
我们都知道代码可读性的重要性,但提高可读性也是一个需要持续修炼的过程,你可以通过一些已经被验证了的方法不断精进。今天,我们为你分享了 5 个小方法:
- 第一,重用会多次使用的内容,坚持 DRY 原则。
- 第二,避免制定通用的解决方案,不要引入复杂性。
- 第三,尽可能减小模块、类或组件的大小,让代码更容易测试和维护。
- 第四,为你的代码自动化执行一些规则和准则,多关注代码的架构和样式。
- 第五,就算只有你一个人,也要像在多人团队中一样编写代码,不要写只有自己懂的代码,要想象自己的代码会有很多人阅读和修改。
最后我想说,你写出来的每一行代码都是你的名片,以此共勉。
卖桃者说,明天见。
(策划:InfoQ;编辑:夏天)