你的命名,我看不懂!
“好的代码都是相似的,坏的代码各有各的不同!” 就说最基本的命名,好的命名像是自带注释,一眼望去就能知道代码的大概意思。而差的命名简直像一团乱麻,让人越看越气!
1 重要性
在代码编写中,写的最多的绝对是各种函数、变量等的名称,而大多数这些名称都需要你通过主观想法指定。很多人不在意这些,觉得没什么用。觉得即是有用的,好的和坏的也差不了多少,实在不行加点注释就好了。其实一个好的名字,不仅能让代码变得易于理解,更能提升编码效率,而且会令人赏心悦目。
让我们看个🌰:
1 | # 反例 |
1 | # 正例 |
对比「正例」和「反例」,你更喜欢哪个?
2 命名原则
2.1 名副其实
名字要表达它本身的含义。
1 | # 反例 |
1 | # 正例 |
2.2 避免误导
名字要警惕和保留字,已经一些有歧义的缩写等冲突。
1 | # 反例 |
1 | # 正例 |
2.3 有意义的区分
没有意义的区分容易造成误解,引起不必要的麻烦。
1 | # 反例 |
1 | # 正例 |
2.4 使用读得出来的名字
人类的大脑有一块重要的功能是用来处理语言的,加以善用,事半功倍。
1 | # 反例 |
1 | # 正例 |
2.5 使用可搜索的名称
先说一条原则:
名称长短应与其作用域大小相对应。
想要从一大篇文字中找到单字母变量不是一件容易的事情,因为包含这个字母的代码太多了。
1 | # 反例 |
1 | # 正例 |
3 神器
综上所述,取个好名字真的很难,那有没有什么高级的辅助工具呢?
试试变量名搜索工具 CODELF ,它可以搜索来自Github,Bitbucket,Google Code,Codeplex,Sourceforge,Fedora Project,GitLab的项目,以查找实际使用变量名称。
而且 codelf 还有各种编辑器的插件,比如常见的 VS Code、Atom等,快去试试吧!
4 参考
- 【代码整洁之道】第2章 有意义的命名
- 关于烂代码的那些事(上)
- 代码里的命名规则:错误的和正确的对比