Java命名规范

Java定义规范的目的是为了使项目的代码样式统一,使程序有良好的可读性,同时便于后期维护和管理。

这里是我们项目组曾经的统一规范,给大家作为参考,如下:

 

1. 编码统一设置为UTF-8

2. 代码的组织与风格:

2.1 一个代码块的缩进统一为4个空格,使用Tab键,不是敲4下空格

2.2 空格:A.所有的二元运算符,除了“.”,应该使用空格将之与操作数分开。一元操作符和操作数之间不应该加空格,比如:负号(“-”),自增(“++”)和自减(“–”)。

B.括号和它里面的字符之间不要出现空格。括号应该和它前边的关键词留有空格。

C.方法和左括号之间不要空格。

D.二元操作符和操作数之间要用空格隔开。

2.3 在方法、局部变量和后边的语句之间、方法内部的逻辑部分之间需要有一个空行,不要有多个空行,也不要没有空行。

2.4 一行代码的长度不要超过当前编辑页的宽度,也就是编辑页下方的左右拉动条不要出现。如果一行代码长度超过了当前编辑页的宽度(通常为表达式),则需要换行,换行需要注意:

A) 在一个逗号后面断开。

B) 在一个操作符前面断开。

C) 新的一行应该与上一行同一级别表达式的开头处对齐。

2.5 每一个函数的有效代码(不包括注释和空行)不要超过50行,如果超过50行,则审视代码,可将一些功能性的代码单独提出,写成一个方法。

2.6 注释

2.6.1 保持注释的简洁,不是任何代码都需要注释的,过多的注释反而会影响代码的可读性。如果语句块(比如循环和条件分枝的代码块)代码太长,嵌套太多,则在其结束“}”要加上注释,标志对应的开始语句。如果分支条件逻辑比较复杂,也要加上注释。

2.6.2 块注释:主要用来描述文件,类,方法,算法等,放在所描述对象的前边。

/**

*作者,创建日期,修改日期,描述内容

*/。

2.6.3 行注释:主要用在方法内部,对代码,变量,流程。整个注释占据一行。

2.6.4 尾随注释:与行注释功能相似,放在代码的同一行。

2.6.5 注释内容

项目 注释哪些部分
参数 参数用来做什么

任何约束或前提条件

字段/属性 字段描述
类的目的

已知的问题

类的开发/维护历史

接口 目的

它应如何被使用以及如何不被使用

局部变量 用处/目的
成员函数注释 成员函数做什么以及它为什么做这个

哪些参数必须传递给一个成员函数

成员函数返回什么

已知的问题

任何由某个成员函数抛出的异常

成员函数是如何改变对象的

包含任何修改代码的历史

如何在适当情况下调用成员函数的例子适用的前提条件和后置条件

成员函数内部注释 控制结构

代码做了些什么以及为什么这样做

局部变量

难或复杂的代码

处理顺序

 

2.6.6 程序修改注释

新增代码行的前后要有注释行说明,对具体格式不作要求,但必须包含作者,新增时间,新增目的。在新增代码的最后必须加上结束标志;

修改代码行建议以删除代码行后再新增代码行的方式进行(针对别人的代码进行修改时,必须标明,对于自己的代码进行修改时,酌情进行)。注释方法和内容同新增;

2.7    变量的声明,需要归类放置。

3 命名

3.1 命名的基本约定

3.1.1 使用可以准确说明变量/字段/类的完整的英文描述符,如firstName。对一些作用显而易见的变量可以采用简单的命名,如在循环里的递增(减)变量就可以被命名为i。

3.1.2 尽量采用项目所涉及领域的术语。

3.1.3 采用大小写混合,提高名字的可读性。为区分一个标识符中的多个单词,把标识符中的每个单词的首字母大写。不采用下划线作分隔字符的写法。有两种适合的书写方法。适用于不同类型的标识符:

PascalCasing:标识符的第一个单词首字母小写。

CamelCasing:标识符的第一个单词首字母大写。

 

标识符 大小写 示例
命名空间 Pascal namespace Com.Techstar.ProductionCenter
类型 Pascal public class DevsList
接口 Pascal public interface ITableModel
方法 Pascal public void UpdateData()
属性 Pascal Public int Length{…}
事件 Pascal public event EventHandler Changed;
私有字段 Camel private string fieldName;
非私有字段 Pascal public string FieldName;
枚举值 Pascal FileMode{Append}
参数 Camel public void UpdateData(string fieldName)
局部变量 Camel string fieldName;

 

3.1.4 尽量避免使用缩写,使用时,需要保留标准缩写列表。两个字母的缩写要采用统一大小写的方式(ioStream,getIOStream)。多字母缩写采用首字母大写,其他字母小写的方式(GetHtmlTag)。

3.1.5 避免使用长名字。

3.1.6 避免使用相似或者仅在大小写上有却别的名字。

3.2 类和接口的命名

3.2.1 类的名字要用名词。

3.2.2 接口的名字要以I开头,保证其实现只和接口的名字差一个I字母。

3.2.3 方法命名:第一个单词一般为名词。

3.2.4 方法的重载规范:

A.如果重载中某个参数表示同一种输入,则要用相同的名字。

B.避免重载成员的参数顺序不一致,同名参数应该出现在相同位置。

C.要允许参数可为null

 

 

 

HTML、JS、java编码规范大同小异。

HTML编码规范

1. 小写所有字母。

2. 样式和脚本使用引用的方式。

3. 标签一定要有结束标记。

4. 属性值要用双引号,属性一律小写。

5. 标签要合理嵌套。

6. 图片中一定要有alt属性。

7. 属性中的width,height一律使用百分比。

8. 标签要有缩进,统一为4个空格,即一个Tab。

9. 需要有适当的注释。

10. 一个标记必须占据一行。不得出现两个标记出现在同一行的情况。

11. 最高一级采用左对齐顶格的方式书写。下一级采用左对齐向右缩进一个Tab的方式书写。

12. 同一级的标记必须上下对齐。

 

 

 

JavaScript编码规范

1. 所有变量必须声明。

2. 将var语句放在函数的首部。

3. 变量尽量采用小写,全局变量全部大写。

4. 右花括号后面必须跟随分号。

 

 

 

数据库编码规范

1. 表名单词首字母一律大写

2. 视图以VI_开头

3. 触发器以TRI_+触发器名称+_IUD(I为insert,U为update,D为delete)

4. 存储过程以P_开头

5. 注释格式为:

–===================

–功能

–作者

–时间

–返回值

–====================

 

 

开发过程中的文档要求

1. 需求文档(完整的)

2. 概要设计文档(完整的)

3. 详细设计文档(完整的)

4. 数据库设计文档,包括表说明,字段说明,触发器说明,存储过程说明,视图说明等。

5. 开发日志,项目经验。

格式为:时间,姓名,主题,解决方案。

6. 测试文档

 

 

出处:http://blog.csdn.net/cl05300629/article/details/9248467 作者:伫望碧落

 

 

下面为网上整理下来的规范相关资料,挺详细的,希望对大家有帮助,如下:

包的命名  (全部小写,由域名定义)

Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都 可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。 由于互联网上的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。
例如:net.frontfree.javagroup
类的命名 (单词首字母大写)

根据约定,Java类名通常以大写字母开头,如果类名称由多个单词组成,则每个单词的首字母均应为大 写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来 代表对象的,所以在命名类时应尽量选择名词。
例如: Graphics
方法的命名 (首字母小写,字母开头大写)

方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。
例如:drawImage
常量的命名 (全部大写 ,常加下划线)
常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。
例如:MAX_VALUE
参数的命名

参数的命名规范和方法的命名规范相同,而且为了避免阅读程序时造成迷惑,请在尽量保证参数名称为一个单词的情况下使参数的命名尽可能明确。

Javadoc注释

Java除了可以采用我们常见的注释方式之外,Java语言规范还定义了一种特殊的注释,也就是我们 所说的Javadoc注释,它是用来记录我们代码中的API的。Javadoc注释是一种多行注释,以/**开头,而以*/结束,注释可以包含一些 HTML标记符和专门的关键词。使用Javadoc 注释的好处是编写的注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。
例如:

/**
* This is an example of
* Javadoc
* @author darchon
* @version 0.1, 10/11/2002
*/

在每个程序的最开始部分,一般都用Javadoc注释对程序的总体描述以及版权信息,之后在主程序中 可以为每个类、接口、方法、字段添加 Javadoc注释,每个注释的开头部分先用一句话概括该类、接口、方法、字段所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟 随更加详细的描述段落。在描述性段落之后还可以跟随一些以Javadoc注释标签开头的特殊段落,例如上面例子中的@auther和@version,这 些段落将在生成文档中以特定方式显示。
变量和常量命名
变量的命名

主要的的命名规范有以下三种:
Camel 标记法:首字母是小写的,接下来的单词都以大写字母开头
Pascal 标记法:首字母是大写的,接下来的单词都以大写字母开头
匈牙利标记法:在以Pascal标记法的变量前附加小写序列说明该变量的类型

在Java我们一般使用匈牙利标记法,基本结构为scope_typeVariableName,它 使用1-3字符前缀来表示数据类型,3个字符的前缀必须小写,前缀后面是由表意性强的一个单词或多个单词组成的名字,而且每个单词的首写字母大写,其它字 母小写,这样保证了对变量名能够进行正确的断句。例如,定义一个整形变量,用来记录文档数量:intDocCount,其中int表明数据类型,后面为表 意的英文名,每个单词首字母大写。这样,在一个变量名就可以反映出变量类型和变量所存储的值的意义两方面内容,这使得代码语句可读性强、更加容易理解。 byte、int、char、long、float、 double、boolean和short。

数据类型/前缀(附)
byte b
char c
short sh
int i
long l
char c
string s
float f
double d
hashtable h
[] arr
List lst
Vector v
StringBuffer sb
Boolean b
Byte bt
Map map
Object ob

对于在多个函数内都要使用的全局变量,在前面再增加“g_”。例如一个全局的字符串变量:g_strUserInfo。

在变量命名时要注意以下几点:

· 选择有意义的名字,注意每个单词首字母要大写。

· 在一段函数中不使用同一个变量表示前后意义不同的两个数值。

· i、j、k等只作为小型循环的循环索引变量。

· 避免用Flag来命名状态变量。

· 用Is来命名逻辑变量,如:blnFileIsFound。通过这种给布尔变量肯定形式的命名方式,使得其它开发人员能够更为清楚的理解布尔变量所代表的意义。

· 如果需要的话,在变量最后附加计算限定词,如:curSalesSum。

· 命名不相包含,curSales和curSalesSum。

· static final 变量(常量)的名字应该都大写,并且指出完整含义。

· 如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用intCnt,而在另一些区域中又使用intCount,就会给代码增加不必要的复杂性。建议变量名中尽量不要出现缩写。

· 通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用 strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。常 用的量词后缀有:First(一组变量中的第一个)、Last(一组变量中的最后一个)、Next(一组变量中的下一个变量)、Prev(一组变量中的上 一个)、Cur(一组变量中的当前变量)。

· 为每个变量选择最佳的数据类型,这样即能减少对内存的需求量,加快代码的执行速度,又会降低出错的可能性。用于变量的数据类型可能会影响该变量进行计算所产生的结果。在这种情况下,编译器不会产生运行期错误,它只是迫使该值符合数据类型的要求。这类问题极难查找。

· 尽量缩小变量的作用域。如果变量的作用域大于它应有的范围,变量可继续存在,并且在不再需要该变量后的很长时间内仍然占用资源。它们的主要问题是,任何类 中的任何方法都能对它们进行修改,并且很难跟踪究竟是何处进行修改的。占用资源是作用域涉及的一个重要问题。对变量来说,尽量缩小作用域将会对应用程序的 可靠性产生巨大的影响。

关于常量的命名方法,在JAVA代码中,无论什么时候,均提倡应用常量取代数字、固定字符串。也就是 说,程序中除0,1以外,尽量不应该出现其他数字。常量可以集中在程序开始部分定义或者更宽的作用域内,名字应该都使用大写字母,并且指出该常量完整含 义。如果一个常量名称由多个单词组成,则应该用下划线“_”来分割这些单词如:NUM_DAYS_IN_WEEK、MAX_VALUE。

标签