概述
开发中,同统一、优雅的命名约定是个非常好的编程习惯,不同的开发语言,有不同的传统,因此也有不同的命名风格,‘法无定法、式无定式’,关键是同一个模块,统一个项目,要有统一的风格。
1 Python 命名风格
1、示例:
> module_name, package_name, method_name, function_name, instance_var_name, function_parameter_name, local_var_name.
> ClassName, ExceptionName,
> GLOBAL_VAR_NAME,
2、应避免的名称:
- 单字符名称, 除了计数器和迭代器.
- 包/模块名中的连字符(-)
- 双下划线开头并结尾的名称(Python保留, 例如init)
3、约定
- 所谓“内部(Internal)”表示仅模块内可用, 或者, 在类内是保护或私有的.
- 用单下划线(_)开头表示模块变量或函数是protected的(使用import * from时不会包含).
- 用双下划线(__)开头的实例变量或方法表示类内私有. 将相关的类和顶级函数放在同一个模块里. 不像Java, 没必要限制一个类一个模块.
- 对类名使用大写字母开头的单词(如CapWords, 即Pascal风格), 但是模块名应该用小写加下划线的方式(如lower_with_under.py). 尽管已经有很多现存的模块使用类似于CapWords.py这样的命名, 但现在已经不鼓励这样做, 因为如果模块名碰巧和类名一致, 这会让人困扰.
4、Python之父Guido推荐的规范
Type | Public | Internal |
---|---|---|
Modules | lower_with_under | _lower_with_under |
Packages | lower_with_under | |
Classes | CapWords | _CapWords |
Exceptions | CapWords | |
Functions | lower_with_under() | _lower_with_under() |
Global/Class Constants | CAPS_WITH_UNDER | _CAPS_WITH_UNDER |
Global/Class Variables | lower_with_under | _lower_with_under |
Instance Variables | lower_with_under | _lower_with_under (protected) or __lower_with_under (private) |
Method Names | lower_with_under() | _lower_with_under() (protected) or __lower_with_under() (private) |
Function/Method | Parameters | lower_with_under |
Local Variables | lower_with_under |
备注:python包实质上是个目录,目录名使用下划线看起来挺别捏的,一般在实践中,只是模块名使用 aaa_aaa_aaa.py 的形式,包名可以使用缩写,小写单词连写的形式。看个人习惯了!
2 Ruby 命名风格
1、变量与函数的命名规则
乍看之下与Perl的命名规则有些类似,不过Perl的命名用来区分标量、数组与映射;而Ruby的命名规则用来表示变量与类型的关系。
Ruby的变量有以下几种:
- 一般小写字母、下划线开头:变量(Variable)。
- $开头:全局变量(Global variable)。
- @开头:实例变量(Instance variable)。
- @@开头:类变量(Class variable)类型变量被共享在整个继承链中
- 大写字母开头:常数(Constant)。
有些函数则会加一个后缀,用来表示函数的用法,跟变量命名规则不同,函数的命名规则只是习惯,不具强制性,即使你不照规则命名也不影响程序运作。
- =结尾:赋值方法,相当于其他编程语言的set开头的方法,算是一种语法蜜糖。
- !结尾:破坏性方法,调用这个方法会修改本来的对象,这种方法通常有个非破坏性的版本,调用非破坏性的版本会回传一个对象的副本。
- ?结尾:表示这个函数的回传值是个布尔值。
3 Java命名风格
4 数据表及字段的命名风格
- 表前缀:系统或模块的缩写;sys_customer, sys_product
- 关系: sys_customer_product_buy
- 应该使用名词的单数形式: sys_user
- 为表添加注释
5 文件命名风格
包文件,模块文件,源文件,配置文件,日志文件,资源文件
几种通用命名规则的比较
命名风格 | 示例 | 应用 |
---|---|---|
蛇形 | snake_case | Linux内核,C++标准库,Ruby |
小驼峰 | lowerCamelCase | Java,Qt |
大驼峰 | UpperCamelCase | MFC,Windows API,C# |
匈牙利 | hgCase | MFC,Boost |
局部变量通用缩写:
index : idx
file : f
number : num
direcotry : dir
array : arr
list : l
参考文档:
http://www.cnblogs.com/far-taurus/p/5255011.html
http://zh-google-styleguide.readthedocs.io/en/latest/contents/
最后
以上就是大方盼望为你收集整理的编程规范——命名约定的全部内容,希望文章能够帮你解决编程规范——命名约定所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复