令人头疼的代码命名规范……
语言场景
给出各个场景下的命名规则,大家要养成习惯。事实上,如果经常在各个语言上切换的话,真的可能搞混。所以今天就Mark一下吧。
Java命名规范总体命名规范类名需要使用大驼峰命名法(UpperCamelCase)风格。方法名、参数名、成员变量、局部变量需要使用小驼峰命名法(lowerCamelCase)。测试方法名、常量、枚举名称需要使用蛇形命名法(snake_case) ,比如test_get_user()、TIME_LIMIT。并且,测试方法名称要求全部小写,常量以及枚举名称需要全部大写。项目文件夹名称使用串式命名法(kebab-case),比如dubbo-registry。包名统一使用小写,尽量使用单个名词作为包名,各个单词通过 "." 分隔符连接,并且各个单词必须为单数。抽象类命名使用 Abstract 开头。如:public abstract class AbstractClient extends AbstractEndpoint{}。异常类命名使用 Exception 结尾。如:public class NoSuchMethodException extends RuntimeException{}。测试类命名以它要测试的类的名称开始,以 Test 结尾。如:public class AnnotationUtilsTest{}。
包名命名规范
Java的包名由小写单词组成,包的路径符合所开发的系统模块的定义,以便通过包名可得知其属于哪个模块,从而方便到对应包里找相应的实现类。
常规包名
为了保障每个Java Package命名的唯一性,在Java编程规范中要求开发人员在自己定义的包名前加上唯一的前缀.由于互联网上的域名称是不会重复的,所以多数开发人员采用自己公司在互联网上的域名称作为自己程序包的唯一前缀.例如 : com.sun.swt...
公司项目com : 公司项目,copyright由项目发起的公司所有.包名 : com.公司名.项目名.模块名..团队项目team : 团队项目,指由团队发起,并由该团队开发的项目,copyright属于该团队所有.包名 : team.团队名.项目名.模块名..
自定义包名
一般公司命名为com.公司名.项目名.模块名....那我们个人的项目又怎么命名呢?个人的英语单词有individual、personal、private、one-man,进一步对以上四个单词词意进行分析并在保证了唯一性,继而使用每个单词的前4个字母作为前缀,与com也做了区分.示例如下所示:
indi : 个体项目,指个人发起,但非自己独自完成的项目,可公开或私有项目,copyright主要属于发起者. 包名 :indi.发起者名.项目名.模块名..pers : 个人项目,指个人发起,独自完成,可分享的项目,copyright主要属于个人.包名 : pers.个人名.项目名.模块名..priv : 私有项目,指个人发起,独自完成,非公开的私人使用的项目,copyright属于个人.包名 : priv.个人名.项目名.模块名..onem : 与indi相同,推荐使用indi.
Python命名规范
类:总是使用首字母大写单词串。如MyClass、ClassName。内部类可以使用额外的前导下划线。
函数和方法:小写+下划线,如method_name。
函数参数:小写+下划线,如function_parameter_name。如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线,如random_。
全局变量:对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线,如_var_name。应避免使用全局变量。
变量:小写,由下划线连接各个单词。如color、this_is_a_variable。注意:
不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。私有类成员使用单一下划线前缀标识。变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。
常量:常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL。
异常:以“Error”作为后缀。
文件名:全小写,可使用下划线
包:应该是简短的、小写的名字。如果下划线可以改善可读性可以加入,如mypackage。
模块:与包的规范同,如mymodule。
缩写:命名应当尽量使用全拼写的单词,缩写的情况有如下两种:
常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。例如:function 缩写为 fntext 缩写为 txtobject 缩写为 objcount 缩写为 cntnumber 缩写为 num,等。
前导后缀下划线:
一个前导下划线:表示非公有。一个后缀下划线:避免关键字冲突。两个前导下划线:当命名一个类属性引起名称冲突时使用。两个前导和后缀下划线:“魔”(有特殊用图)对象或者属性,例如__init__或者__file__。绝对不要创造这样的名字,而只是使用它们。注意:关于下划线的使用存在一些争议。
特定命名方式:主要是指 xxx 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如class Base(object):def init(self, id, parent = None):self.id = idself.parent = parentdef message(self, msgid):其中 id、parent 和 message 都采用了系统保留字命名法。
Python推荐使用蛇形命名法,因为 Python 是蟒蛇啊,理所当然是用蛇形命名……
综合各方面考虑,驼峰式命名法比较好,优势明显,事实上,目前使用驼峰式命名法的人也真的越来越多了。
图片新闻
最新活动更多
-
11月28日立即报名>>> 2024工程师系列—工业电子技术在线会议
-
11月29日立即预约>> 【上海线下】设计,易如反掌—Creo 11发布巡展
-
11月30日立即试用>> 【有奖试用】爱德克IDEC-九大王牌安全产品
-
即日-12.5立即观看>> 松下新能源中国布局:锂一次电池新品介绍
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
即日-12.26火热报名中>> OFweek2024中国智造CIO在线峰会
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论