JAVA、C、Python各编程语言命名规范(最全、持续补充)

JAVA、C、Python语言命名规范(最全、持续补充)


该篇文章参照链接处内容,并将其整合在一起

一、先了解一下命名的分类
JAVA、C、Python各编程语言命名规范(最全、持续补充)_第1张图片

Java命名规范

  • 类名:需要使用大驼峰命名法(UpperCamelCase)风格。
  • 方法名、参数名、成员变量、局部变量:需要使用小驼峰命名
  • 测试方法名、常量、枚举名称需要使用蛇形命名法(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
  1. 常规包名
     
    为了保障每个Java Package命名的唯一性,在Java编程规范中要求开发人员在自己定义的包名前加上唯一的前缀.由于互联网上的域名称是不会重复的,所以多数开发人员采用自己公司在互联网上的域名称作为自己程序包的唯一前缀.例如 : com.sun.swt…
公司项目
	com : 公司项目,copyright由项目发起的公司所有.
	包名 : com.公司名.项目名.模块名…
团队项目
	team : 团队项目,指由团队发起,并由该团队开发的项目,copyright属于该团队所有.
	包名 : team.团队名.项目名.模块名…
  1. 自定义包名
     
    一般公司命名为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。
     
    WARNING

    • 不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。
    • 私有类成员使用单一下划线前缀标识。
    • 变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都不是好的命名
       
  • 常量:常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL。

  • 异常:以“Error”作为后缀。

  • 文件名:全小写,可使用下划线

  • 包:应该是简短的、小写的名字。如果下划线可以改善可读性可以加入,如mypackage。

  • 模块:与包的规范同,如mymodule。

  • 缩写:命名应当尽量使用全拼写的单词,缩写的情况有如下两种:

    • 常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。
    • 命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。
      例如:
      function 缩写为 fn
      text 缩写为 txt
      object 缩写为 obj
      count 缩写为 cnt
      number 缩写为 num,等。
  • 前导后缀下划线:

    • 一个前导下划线:表示非公有。
    • 一个后缀下划线:避免关键字冲突。
    • 两个前导下划线:当命名一个类属性引起名称冲突时使用。
    • 两个前导和后缀下划线:“魔”(有特殊用图)对象或者属性,例如__init__或者__file__。绝对不要创造这样的名字,而只是使用它们。
    • 注意:关于下划线的使用存在一些争议。
  • 特定命名方式:主要是指 xxx 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如

    class Base(object):
    def init(self, id, parent = None):
    self.id = id
    self.parent = parent
    def message(self, msgid):
    其中 id、parent 和 message 都采用了系统保留字命名法。

C和C++语言命名规范

  • 文件命名规则:串式命名。全部小写,可以含下划线或连字符,按项目约定命名,且尽量保证文件名明确。比如:cmd_save_player_info_class.cc ,my_use_full_class.cc
    • 定义类时文件名一般成对出现, 如 foo_bar.h (头文件串式命名)和 foo_bar.cc(源文件串式命名) 对应于类 FooBar(大驼峰命名)
    • 若是类中含大量内联函数,我们还可使用-ini.h文件,使之文件内容更加清晰,于是又如:
      url_table.h url_table.cc url-table-ini.h
    • c文件以.c结尾,头文件以.h结尾;C++文件以.cpp结尾,头文件以.hpp结尾;cpp和hpp成对出现;
  • 类命名:大驼峰命名,不含下划线。类型命名每个单词首字母大写,以名词形式。比如:MyPalyerManager,这对于所有类型命名一样,类结构体,枚举,类定义都是如此,比如:MyExcitingEnum
  • 数据类型命名:大驼峰命名。每个单词首字母均大写,不包含下划线;如果有缩写通常以缩写首字母大写即可。(包括类名、结构体名、枚举、类型定义typedef),都使用此约定。
  • 变量命名规则:串式命名。变量名一律小写,单词用下划线相连。
    • 特殊的是类成员变量,后跟下划线或前面加m区别普通变量,比如:player_name_,m_ player_id
    • 全局变量则以 g_ 开头,比如 :g_system_time
  • 常量命名规则:驼峰形命名(大小驼峰都可)。通常在开头加上k区分,大小写混写;或者全部大写。如:const int AWEEK_NUM = 7;
  • 命名空间:同类型名(串式命名);大驼峰法命名;减少(尽量不用)缩写;基于项目名称和结构
  • 函数命名:小驼峰命名。
    • 常规函数每个单词首字母大写,使用命令式语气,比如:OpenFile() CheckFileName(),
    • 存取函数或短小的内联函数使用小写加下划线,且与访问变量相吻合,比如set_num_errors();
  • 枚举命名:大驼峰命名,不含下划线。枚举类名属于类型名,按类命名,枚举值全大写加下划线,比如:ENUM_NAME 。
  • 宏变量命名:如果你一定要用到宏,全大写加下划线,比如:define PI_ROUND 3.0
  • 可以借助工具进行美化。方便快捷。比如说我用的Qt里面的Beautifier,就可以进行一键格式化代码。

注意:无论是Java、python还是c都只识别数字,字母,下划线,且第一个字符必须是字母或下划线

链接:

  • Java\Python命名》规范
  • Google C++编程风格指南
  • C++ 命名方式建议
  • C++谷歌命名规范
  • C/C++编写命名规范
  • C/C++编写命名规范

你可能感兴趣的:(java,python,c++,c语言)