编程规范——命名约定

开发中,同统一、优雅的命名约定是个非常好的编程习惯,不同的开发语言,有不同的传统,因此也有不同的命名风格,‘法无定法、式无定式’,关键是同一个模块,统一个项目,要有统一的风格。

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/

你可能感兴趣的:(编程语言)