美文网首页后端工程师后端应用技术程序猿阵线联盟-汇总各类技术干货
命名法总结(用于变量名、函数名、类名、文件名)

命名法总结(用于变量名、函数名、类名、文件名)

作者: 咚门 | 来源:发表于2016-06-01 22:11 被阅读2002次

    这些命名法可视为命名惯例,并无绝对与强制,为的是增加可识别性和可读性。一旦选用或设置好命名规则,在程序编写时应保持格式的一致性。

    1. 驼峰命名法(Camel Case):

    • 小驼峰命名法(Lower Camel Case):第一个单词的首字母小写第二个单词开始每个单词的的首字母大写。例如:firstName、lastName。
    • 大驼峰命名法(Upper Camel Case:每一个单词的首字母都大写。例如:FirstName、LastName、CamelCase。也被称为 Pascal 命名法(Pascal Case),源自于 Pascal 语言的命名惯例。

    2. Snake Case:这是书写复合词或短语的一种惯例(practice)。复合词或短语中的各个单词之间用下划线(_)分隔并且没有空格。复合词中的每一个单词的首字母通常都是小写的,并且复合词的第一个字母既可以是大写的又可以是小写的,例如:“foo_bar”和“Hello_world”。一般认为 Snake Case 的可读性要比 Camel Case 要强。

    3. 匈牙利命名法(貌似没什么卵用,不用看了):首次在BCPL语言中被大量使用。由于BCPL只有机器字这一种数据类型,因此++这种语言本身无法帮助程序员来记住变量的类型。匈牙利命名法通过明确每个变量的数据类型来解决这个问题++。

    系统命名法与应用命名法的区别在于前缀的目的。

    • 系统型匈牙利命名法(System Hungarian):前缀代表了变量的实际数据类型。
    • lAccountNum:变量是一个长整数("l");
    • arru8NumberList:变量是一个无符号8位整型数组("arru8");
    • szName:变量是一个零结束字符串("sz"),这是西蒙尼最开始建议的前缀之一。
    • 应用型匈牙利命名法(Apps Hungarian):前缀给出了变量目的的提示,或者说它代表了什么。
    • rwPosition:变量代表一个行("rw")。
    • usName:变量代表一个非安全字符串("us"),需要在使用前处理。
    • strName:变量代表一个包含名字的字符串("str")但是没有指明这个字符串是如何实现的。

    4. Studly caps:这是驼峰命名法的变种。相关资料比较少,wiki上的介绍

    Messages may be hidden in the capital and lower-case letters such as "ShoEboX" which spells "SEX" in capitals and "hobo" in lower-case. The webmail service Hotmail was originally stylized as HoTMaiL, which spells HTML in upper-case.

    5. 额。。。用“-”作为分隔符的命名法叫什么?没找到相关的资料~但在 vuejs 的文档中看到这个术语:短横分隔命名kebab-case

    相关文章

      网友评论

      • DHclly:今天就碰到snake case了,就百度到这了
      • Staveno:最近才在纠结这个
      • odirus:首先感谢你的投稿《后端工程师》主题,另外写点我的观点。

        一般编码规范主要是取决于 业界规范、公司规范,业界规范可以起到促进开源项目交流的作用,公司规范可以使代码便于维护,正所谓无规矩不成方圆嘛。

        所以可以先了解一下业界规范,然后再根据公司的实际情况加以调整。

        推荐一个 Google 编程相关规范,https://github.com/google/styleguide
        咚门:这篇文章其实并没有针对某一门语言,而是各种语言可能遵循的命名法的一个大分类,巧合的是,这篇总结正是因为在阅读 PSR 官网文档时碰到的 Studly caps 而写的,PSR 并没有对 Studly caps 进行更进一步的说明,而是把它作为一种常识,对于不了解 Studly caps 的人来说可能就需要补充一下这方面的知识才能更清晰地理解文档了。

      本文标题:命名法总结(用于变量名、函数名、类名、文件名)

      本文链接:https://www.haomeiwen.com/subject/zxnhdttx.html