编码规范及其代码.doc





《编码规范及其代码.doc》由会员分享,可在线阅读,更多相关《编码规范及其代码.doc(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、项目编号文档编号13密 级内部网上招聘系统编码规范及其代码说明V1.0北京长江软件公司评 审 日 期: 2006年6月12日目 录1.导言31.1目的31.2范围31.3缩写说明31.4术语定义41.5引用标准41.6参考资料41.7版本更新信息42. 编码格式规范42. 1缩进排版52. 2行长度52. 3断行规则:52. 4空行63.命名规范73. 1包(Packages)73. 2类(Classes)73. 3接口(Interfaces)73. 4方法(Methods)73. 5变量(Variables)73. 6实例变量(Instance Variables)83. 7常量(Const
2、ants)84声明规范84.1每行声明变量的数量84.2初始化84.3布局94.4包的声明94.5类和接口的声明95语句规范95.1简单语句105.2复合语句106.注释规范106. 1注释的方法106. 2开头注释116. 3类和接口的注释127. 代码范例128.目录规范141.导言1.1目的该文档的目的是描述网上招聘系统项目的编码规范和对代码的说明,其主要内容包括:l 编码规范l 命名规范l 注释规范l 语句规范l 声明规范l 目录设置l 代码说明本文档的预期的读者是:l 开发人员l 项目管理人员l 质量保证人员1.2范围该文档定义了本项目的代码编写规范,以及部分代码描述和所有代码的说明
3、。1.3缩写说明JSPJava Server Page(Java服务器页面)的缩写,一个脚本化的语言。MVC(模式视图控制)的缩写,表示一个三层的结构体系。EJB(企业级)的缩写。1.4术语定义ClassJava程序中的一个程序单位,可以生成很多的实例。Packages 由很多的类组成的工作包。 1.5引用标准1 企业文档格式标准 北京长江软件有限公司 2 Java语言编写规范北京长江软件有限公司软件工程过程化组织1.6参考资料1 实战 美机械工业出版社 2 软件重构 清华大学出版社1.7版本更新信息本文档的更新记录如表所示。表D-1 版本更新记录修改编号修改日期修改后版本修改位置修改内容概述
4、0002006.5.280. 1全部初始发布版本0012006.6.101.06章修改代码2. 编码格式规范2. 1缩进排版4个空格作为缩进排版的一个单位。2. 2行长度尽量避免一行的长度超过80个字符,用于文档中的例子应该使用更短的行长,长度一般不超过70个字符。2. 3断行规则:当一个表达式无法容纳在一行内时,可以依据如下一般规则断开: l 在一个逗号后面断开 l 在一个操作符前面断开 l 宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开(见下面的例子) l 新的一行应该与上一行同一级别表达式的开头处对齐 l 如果以上规则导致你的代码混乱或者
5、使你的代码都堆挤在右边,那就代之以缩进8个空格以下是两个断开算术表达式的例子。前者属于更高级别的断开,因为断开处位于括号表达式的外边。longName1 = longName2 * (longName3 + longName4 - longName5)+ 4 * longname6; /推荐longName1 = longName2 * (longName3 + longName4 -longName5) + 4 * longname6; /避免 以下是两个缩进方法声明的例子。前者是常规情形。后者若使用常规的缩进方式将会使第二行和第三行移得很靠右,所以代之以缩进8个空格。 /规范的缩进some
6、Method ( int anArg, Object anotherArg, String yetAnotherArg,Object andStillAnother)/以8个空格来缩进,以避免非常纵深的缩进private static synchronized horkingLongMethodName(int anArg, Object anotherArg, String yetAnotherArg, Object andStillAnother) if语句的换行通常使用8个空格的规则,因为常规缩进(4个空格)会使语句体看起来比较费劲。比如: /不可取的缩进方法if ( ( conditi
7、on1 & condition2) | (condition3 & condition4)| ( condition5 & condition6) doSomethingAboutIt(); /可取的缩进方法一if ( ( condition1 & condition2) | ( condition3 & conditin4 )| ! (condition5& condition6) doSomethingAboutIt();/可取的缩进方法二if (condition1 & condition2) | (conditin3 & condition4) | ! ( condition5 & c
8、ondition6 ) doSomethingAboutIt();三种可取的三元运算符的缩进格式:alpha = ( aLongBooleanExpression) ? beta : gamma;alpha = ( aLongBooleanExpression) ? beta : gamma;alpha = ( aLongBooleanExpression) ? beta : gamma;2. 4空行 空行将逻辑相关的代码段分隔开,以提高可读性。 下列情况应该总是使用两个空行: l 一个源文件的两个片段(section)之间 l 类声明和接口声明之间 下列情况应该总是使用一个空行: l 两个方
9、法之间 l 方法内的局部变量和方法的第一条语句之间 l 块注释或单行注释之前 l 一个方法内的两个逻辑段之间,用以提高可读性 3.命名规范 命名规范使程序更易读,从而更易于理解。它们也可以提供一些有关标识符功能的信息,以助于理解代码。3. 1包(Packages) 一个唯一包名的前缀总是全部小写的ASCII字母并且是一个顶级域名,通常是com, edu, gov, mil, net, org, 或1981年ISO 3166标准所指定的标识国家的英文双字符代码。包名的后续部分根据不同机构各自内部的命名规范而不尽相同。这类命名规范可能以特定目录名的组成来区分部门(department),项目(pr
10、oject),机器(machine),或注册名(login names)。如:com.sun.eng com.apple.quicktime.v2 edu.cmu.cs.bovik.cheese 3. 2类(Classes) 类名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML)。3. 3接口(Interfaces) 大小写规则与类名相似。3. 4方法(Methods) 方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。 3. 5变量(Variable
11、s) 采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。3. 6实例变量(Instance Variables) 大小写规则和变量名相似,除了前面需要一个下划线,如:int _employeeId.3. 7常量(Constants) 类常量和ANSI常量的声明,应该全部大写,单词间用下划线隔开。4声明规范4.1每
12、行声明变量的数量 推荐一行一个声明,因为这样以利于写注释。亦即:int level; / indentation level int size; / size of table 要优于:int level, size; 不要将不同类型变量的声明放在同一行,例如: int foo, fooarray; /WRONG! 注意:上面的例子中,在类型和标识符之间放了一个空格。空格可使用制表符替代。4.2初始化 尽量在声明局部变量的同时初始化。唯一不这么做的理由是变量的初始值依赖于某些先前发生的计算。 4.3布局 只在代码块的开始处声明变量。(一个块是指任何被包含在大括号和中间的代码。)不要在首次用到该
13、变量时才声明之。这会把注意力不集中的程序员搞糊涂,同时会妨碍代码在该作用域内的可移植性。 void myMethod() int int1=0;/beginning of method block if(condition) int int2=0;/beginning of if block . 该规则的一个例外是for循环的索引变量 for (int i = 0; i maxLoops; i+) . 4.4包的声明在多数Java源文件中,第一个非注释行是包语句。我们的网上招聘系统包的声明采用如下规范:package com.changjiangcompany.struts.form; / f
14、orm包package com.changjiangcompany.struts.action; /action包4.5类和接口的声明 当编写类和接口是,应该遵守以下格式规则: l 在方法名与其参数列表之前的左括号(间不要有空格 l 左大括号位于声明语句同行的末尾 l 右大括号另起一行,与相应的声明语句对齐,除非是一个空语句,应紧跟在之后 l 方法与方法之间以空行分隔 5语句规范5.1简单语句 每行至多包含一条语句,例如: argv+; /推荐argc-; /推荐argv+; argc-; /避免 5.2复合语句 复合语句是包含在大括号中的语句序列,形如 语句 。遵循原则如下:l 被括其中的语
15、句应该较之复合语句缩进一个层次 l 左大括号应位于复合语句起始行的行尾;右大括号应另起一行并与复合语句首行对齐。l 大括号可以被用于所有语句,包括单个语句,只要这些语句是诸如if-else或for控制结构的一部分。这样便于添加语句而无需担心由于忘了加括号而引入bug。 6.注释规范Java程序有两类注释:实现注释(implementation comments)和文档注释(document comments)。实现注释使用/*.*/和/界定的注释。文档注释(被称为doc comments)是Java独有的,并由/*.*/界定。文档注释可以通过javadoc工具转换成HTML文件,描述Java的
16、类、接口、构造器,方法,以及字段(field)。一个注释对应一个类、接口或成员。若你想给出有关类、接口、变量或方法的信息,而这些信息又不适合写在文档中,则可使用实现块注释或紧跟在声明后面的单行注释。例如,有关一个类实现的细节,应放入紧跟在类声明后面的实现块注释中,而不是放在文档注释中。 注释应被用来给出代码的总括,并提供代码自身没有提供的附加信息。注释应该仅包含与阅读和理解在注释里,对设计决策中重要的或者不是显而易见的地方进行说明是可以的,但应避免提供代码中己清晰表达出来的重复信息。6. 1注释的方法程序可以有四种实现注释的风格:块注释、单行注释、尾端注释和行末注释。 块注释 块注释通常用于提
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编码 规范 及其 代码

限制150内