如何优雅地为程序中的变量和函数命名?


「你取的变量名太糟糕了」可能是程序员们互相吐槽的常规起手式 。此外还有不写注释、不换行(换行?)、需求不明……

如何优雅地为程序中的变量和函数命名?

文章插图
Phil Karlton:计算机科学领域有两个难题:一个是缓存失效 。另一个就是命名 。
好了好了 。有了这个神奇的网站 。今天我们来解决第一大问题 。让我们和基于汉语拼音的变量名系统说再见吧 。
如何优雅地为程序中的变量和函数命名?

文章插图
网站地址:https://unbug.github.io/codelf/
GitHub 链接:https://github.com/unbug/codelf#codelf-for-vs-code
我们做了一些尝试 。比如在搜索框中键入中文「残差」 。搜索框下方会出现 Suggestions 。列出了多个英文翻译 。Suggestions 下方那片「五彩斑斓」默认为是包含第一个建议英文翻译的所有变量名和函数名 。
如何优雅地为程序中的变量和函数命名?

文章插图
点击其他建议翻译 。下方「五彩斑斓」也会随之改变 。比如点击「error」 。搜索结果的变化如下所示 。
如何优雅地为程序中的变量和函数命名?

文章插图
你也可以选择自己喜欢的编程语言 。比如 Python 。
如何优雅地为程序中的变量和函数命名?

文章插图
看看搜索结果的变化 。
如何优雅地为程序中的变量和函数命名?

文章插图
将鼠标指针放置在某个彩色框上 。会出现「Search」、「Repo」、「Copy」、「Codes」四种选项 。用户可以点击这些选项 。使用对应功能 。
如何优雅地为程序中的变量和函数命名?

文章插图
点击「Search」就是基于当前命名搜索其它相关的命名 。比如 。在「residuals」上点击「Search」后结果如下所示 。
如何优雅地为程序中的变量和函数命名?

文章插图
点击「Repo」就是链接到使用该命名的代码所在的资源库 。
如何优雅地为程序中的变量和函数命名?

文章插图
点击「Copy」是复制该命名 。
点击「Codes」可以查看使用命名的示例代码 。
如何优雅地为程序中的变量和函数命名?

文章插图
可以根据需要选择不同语言的示例代码 。
如何优雅地为程序中的变量和函数命名?

文章插图
据作者介绍 。Codelf 的内部原理是:先到有道翻译 API 取中文的英文翻译 。然后搜索 GitHub 取变量 。该网站支持直接搜索中文 。在搜索框键入中文后 。Codelf 会提供查好的单词及其近义词 。然后通过搜索 Github、Bitbucket、Google Code、Codeplex、Sourceforge、Fedora Project 上的开源项目的源码匹配出与这些词汇相关的变量名和函数名 。当然 。直接输入英文也是可以的 。Codelf 会提供相关的命名 。
如何优雅地为程序中的变量和函数命名?

文章插图
其他观点:
为类 。变量和函数命名 。是一种艺术 。对于高质量的代码来说 。这是基本功 。
如何优雅地为程序中的变量和函数命名?

文章插图
首先 。如果公司制定有命名规范 。则请按照规范来命名 。大家都遵守这点 。代码才会显得美观 。易读 。
其次 。如果公司或团队没有统一规定 。则参考经典命名规范 。例如匈牙利命名法 。在每个变量名的前面加上若干表示数据类型的字符 。变量名=属性+类型+对象描述 。又如骆驼命名法 。混合使用大小写字母来构成变量和函数的名字 。又如帕斯卡命名法 。首字母为大写 。
如何优雅地为程序中的变量和函数命名?

文章插图
最后 。建议多看多参考优质开源代码 。例如Linux 。思考和学习牛人的命名手法 。去其糟粕 。釆其精华 。养成更加优秀的命名习惯 。
如何优雅地为程序中的变量和函数命名?

文章插图
谢谢大家 。
其他观点:
个人觉得 。程序中的变量和函数的命名 。优雅是一方面 。更重要的是 。要简介易懂 。最好使用英文单词 。如果实在对英语不太懂 。那就用拼音 。当然 。用拼音是不太优雅了 。并且有统一的风格 。比如类名采用大驼峰命名法:class TotalData,方法名采用小驼峰:public function getTotalData() 。变量名使用下划线:$data_arr,以上只是举个栗子 。只是这样写 。阅读代码会很舒服 。毕竟代码不仅仅是写给自己看的
【如何优雅地为程序中的变量和函数命名?】

推荐阅读