编程规范1 命名规则---做一名优秀的程序员必备

来源:互联网 发布:入门单板吉他推荐 知乎 编辑:程序博客网 时间:2024/06/06 18:48

如何做一名优秀的程序员,从开始锻炼你的代码规范做起吧!!!
  
没有那种命名规则适用于所有代码工作,因此只能在实践中选择一个适应该项目的规则。代码规范的好处显而易见,一套定义完整、结构清晰明了的命名规范将大大提升源代码的可读性和软件的可维护性。
  
总之,制定一套令开发组成员基本满意的命名规则,并在项目中贯彻实施,也是团队开发一项必不可少的工作。

0x01 命名代码规范概述

代码的命名规范其实标准很多,不外乎几种规则,以下代码以python代码为例:
  
一般的命名规范如下:

【规则1】标识符应简单明了,望文知意

标识符采用英文单词。切忌使用汉语拼音来命名。程序中的英文单词一般不要太复杂,用词应当准确。例如不要把CurrentValue写成NowValue。

尽量不要使用单词缩写或首字母缩写。只有当标识符过长时才考虑使用单词缩写。在使用缩写时,不要自创缩写,尽量使用被广泛接受的缩写。

【规则2】标识符长度应当符合“min-length && max-information”原则

一般的讲,长名字能更好地表达含义,所以函数名、变量名、类名长达十几个字符不足为怪。但是名字也不是越长越好。例如:变量名maxval就比maxValueUntilOverflow更好用。单字符的名字也是有用的,常见的如i,j,k,m,n,x,y,z等,它们通常用作函数内的局部变量。

【规则3】命名规则尽量与所采用的操作系统或开发工具的风格保持一致

例如Windows应用程序的标识符通常采用“大小写”混排的方式,如AddChild。而Unix应用程序的标识符通常采用“小写加下划线”的方式,如add_child。别把这两类风格混在一起用。

【规则4】程序中不要出现仅靠大小写区分的标识符。

例如:int x和int X;void foo() 和void FOO() 等。

【规则5】避免在不同级别的作用域中重名。

程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者因作用域的不同而不会发生语法错误,但会使人产生误解。

【规则6】正确命名具有互斥意义的标识符。

使用正确的反义词组命名具有互斥意义的变量或相反动作的函数。
如:”MinValue”和”MaxValue”,”GetName()” 和 “SetName()”

【规则7】尽量避免名字中出现数字编号。

如Value1,Value2等,除非逻辑上的确需要编号。这是为了防止程序产生无意义的名字,降低程序的可读性。

【规则8】使用库标志

在开发动态库时,为了防止软件库中的一些标识符和其它软件库中标识符冲突,可以为各种标识符加上能反映软件性质的前缀。
例如三维图形标准OpenGL的所有库函数均以gl开头,所有常量(或宏定义)均以GL开头。

0x02 实际中采用的命名方法

1 . 匈牙利命名:

开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写。

ex: int iMyAge; “i”是int类型的缩写; char cMyName[10]; “c”是char类型的缩写; float fManHeight; “f”是float类型的缩写;

其他:
前缀类型 a b by c cb cr cx,cy dw fn h i l lp m_ n np p s sz w (与下面一一对应关系)
数组 (Array) 布尔值 (Boolean) 字节 (Byte) 有符号字符 (Char) 无符号字符 (Char Byte,没有多少人用) 颜色参考值 (ColorRef) 坐标差(长度 ShortInt) Double Word 函数 Handle(句柄) 整型 长整型 (Long Int) Long Pointer 类的成员 短整型 (Short Int) Near Pointer Pointer 字符串型 以 null 做结尾的字符串型 (String with Zero End) Word

2 . 驼峰式命名法:

又叫小驼峰式命名法。
第一个单词首字母小写,后面其他单词首字母大写。

ex: int myAge; char myName[10]; float manHeight;

3 . 帕斯卡命名法:

又叫大驼峰式命名法。
每个单词的第一个字母都大写。

ex: int MyAge; char MyName[10]; float ManHeight;

4 . 还有些许其他的命名规范,如:下划线命名法,但是不是太常用,个人感觉可能是因为下划线位置太偏的事,不方便大量使用。综合各方面考虑,驼峰式命名法比较好,优势明显,事实上,目前使用驼峰式命名法的人也真的越来越多了。

0x03 其他具体到项目内的代码风格

谷歌的代码风格
http://code.google.com/p/google-styleguide/

15中代码及命名规范
http://codebuild.blogspot.com/2012/02/15-best-practices-of-variable-method.html

推荐《Clean Code》一书中的代码规范
详细参见https://www.zhihu.com/question/21440067

0 0
原创粉丝点击