命名规范,对于编程来说不是必需的,毕竟不会因为命名不规范就导致程序不能运行。但是不规范,一定会造成代码阅读困难,晦涩难以理解,不方便后续维护。而且在同一个团队里,如果每个人的命名风格不一样,那么会导致一个系统中命名风格形态各异。一个系统的生命周期短则几个月,长则几年几十年,即使是自己写的代码,几十年过去再返回来看自己写的代码,会不会看不懂,或者觉得写得烂?所以本文旨在记录一些经过无数前辈论证的编码习惯和规范。虽然并不是强制要求,但可以供大家参考。
一、类的命名:
类的命名一般都是采用“驼峰命名法”,并且是“大驼峰”。一般是由若干动词/形容词以及名词不加任何其它字符拼接组成,其中的每个单词的首字母大写,而且该单词中的其它字母小写,例如:MyDemo。
特殊地,有些框架中类的命名虽然也是采用“大驼峰”,但是会在每个单词之间用_(下划线)连接,例如:Service_Data_MyDemo。
二、变量的命名:
不管是全局变量,还是局部变量;不管是普通的变量,还是类中的变量;不管是方法(函数)外的变量,还是方法(函数)内的变量,一般都采用“驼峰命名法”,并且是“小驼峰”。一般是由若干动词/形容词以及名词不加任何其它字符拼接组成,其中的第1个单词的首字母小写,其它单词的每个首字母大写,而且单词中的除首字母外其它字母都小写。例如:pageSize。另外要尽量提高变量命名的准确性,例如:分页查询数据,每页中的记录数量可以定义为recordCount,而所有页中记录总数量可以定义为recordTotal。
特殊地,在数据库设计中,由于数据库的配置,字段名可能会区分大小写。那么如果使用“小驼峰”命名时拼写错误可能会导致查询的字段查不到,所以字段名一般都不用“小驼峰”方式,而是多个单词采用_(下划线)连接,这样就避免区分大小写的问题,延伸出来的对象中的键值对中键名也采用_(下划线)连接的方式,例如:created_time。
三、常量的命名:
常量命名一般采用全部字母大写,由若干动词/形容词以及名词拼接组成,由于没有了“驼峰”无法区分单词边界,所以一般单词与单词之间会有_(下划线)连接,用于区分是两个单词,例如:WEB_ROOT。
四、方法(函数)命名:
方法和函数的区别,在很多文章里说是这样的:如果是在类中,那么就叫方法;如果没有类,这个方法可以独立存在,那么就是函数。
在面向对象编程语言比如Java中,方法只能放在类中,命名一般采用“驼峰命名法”,并且是“小驼峰”。结构一般推荐使用动词+名词格式,例如getInfo();不推荐使用名词+动词,例如infoGet()。如果方法返回的是布尔值,那方法名结构一般是is+形容词/动词被动语态。数据库操作时,create是新增,add是追加;delete是删除,remove是移除;修改用update,查询用get。
在面向过程编程语言比如C中,方法不需要放在类中,命名一般采用_(下划线)连接。再比如JavaScript和PHP,被称为是“基于对象面向过程”的语言,注意不是“面向对象”,从PHP官方手册可以看到,大多数的“方法”都是采用_(下划线)连接,例如array_column()。但PHP比较特殊,既可以定义类,也可以当成脚本语言来使用,但其“方法”命名一般也都是采用“小驼峰命名法”。