开发工具
1. 首选Eclipse,在有需要做GUI设计的时候可以选择NetBeans。
命名规则(驼峰命名法)
0. package名字全部小写,格式为: 公司名.项目名.包名.类名 。
1. 所有的类名,方法名和变量名必须使用有意义的英文单词,如果含有多个单词则每个单词首字母必须大写,不推荐使用连字符和下划线。
2. 类名的首字母必须大写,例如:DataFile或InfoParser。
3. 方法名和变量名首字母必须小写。
变量的名子可大小写混用,但首字符应小写。词由大写字母分隔,限制用下划线,限制使用美元符号($),因为这个字符对内部类有特殊的含义。如: inputFileSize。
类中的属性不能定义为public变量直接存取,而是定义成protect变量来防止继承类使用他们并编写get/set方法。
Class 属性(成员变量)使用一定要加前缀this或super标识对应的成员变量,以增加程序的可读性。
Static Final 变量的名字应该都大写,并且指出完整含义,例如:final MAXUPLOADFILESIZE=1024。
方法名应该是动词,大小写可混用,但首字母应小写。在每个方法名内,大写字母将词分隔并限制使用下划线。参数的名字必须和变量的命名规范一 致,问题参数名是否采用以下划线开始作为统一标识,如setCounter(int _size),以标识成员变量size和传入参数_size区别。使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:
setCounter(int size)
{
this.size = size;
}
setCounter(int size)
{
this.size = size;
}
7. 数组应该总是用下面的方式来命名:byte[] buffer;而不是:byte buffer[];
变量和参数
1. 变量建议采用匈牙利命名法,词素规则见“公共约定”。
2. 整型变量(包括int,short,long):以 n 开头,例如:long nCredNum;
3. 浮点型变量(包括float,double):以 f 开头,例如:double fTranAmt;
4. 字符变量:以 c 开头,例如:char cPageFlag;
5. 日期型变量:以d开头,例如:date dToday;
6. 布尔型变量:以is开头,例如:boolean isFlag;
7. 字符串变量:以 s 开头,例如:string sPageNo[2+1];
8. 全局变量:以g开头结合数据的类型,例如:char gsBankNo[10+1];
9. 静态变量:静态变量在文件中同样是全局变量,命名规则同全局变量,静态变量一般为全大写。
10. 临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。
代码规范
1. 大括号({ })必须占一行。
2. 缩进为四个空格(开发工具中可以设置),不要使用默认的tab,因为在不同的编辑器中tab的缩进长度会有不同。
3. if,else,for,while代码块中即使只有一行代码也要使用大括号。
4. 变量与运算符之间要有空格分开,如:String variable = “aaa”;variable = var1 + var2。
5. 接口的实现类要以接口名+Impl命名。
6. 每个方法的入口和返回必须有相应的日志输出,方便日后的错误调试。
7. 在每个源文件的头部要有必要的注释信息,包括:文件名;版本号;作者;生成日期;模块功能描述(如功能、主要算法、内部各部分之间的关系、该文件与其它文件关系等。
//注释一行
/* ...... */ 注释若干行
/** ...... */ 注释若干行,并写入 javadoc 文档(文档注释)
//注释一行
/* ...... */ 注释若干行
/** ...... */ 注释若干行,并写入 javadoc 文档(文档注释)
在每个函数或过程的前面要有必要的注释信息,包括:函数或过程名称;功能描述;输入、输出及返回值说明;调用关系及被调用关系说明等.
8. 必须用 javadoc 来为类生成文档。不仅因为它是标准,这也是被各种 java 编译器都认可的方法。
9. 小括号的左括号和后一个字符之间不应该出现空格, 同样, 右括号和前一个字符之间也不应该出现空格. 下面的例子说明括号和空格的错误及正确使用:
CallProc( AParameter ); // 错误
CallProc(AParameter); // 正确
CallProc( AParameter ); // 错误
CallProc(AParameter); // 正确
不要在语句中使用无意义的括号. 括号只应该为达到某种目的而出现在源代码中。下面的例子说明错误和正确的用法:
if ((I) = 42) { // 错误 - 括号毫无意义
if (I == 42) or (J == 42) then // 正确 - 的确需要括号
if ((I) = 42) { // 错误 - 括号毫无意义
if (I == 42) or (J == 42) then // 正确 - 的确需要括号
10. 代码应该用 unix 的格式,而不是 windows 的(比如:回车变成回车+换行)
组件/部件
1. 应采用完整的英文描述符命名组件(接口部件),遵循匈牙利命名法则 如:btnOK,lblName。
2. 按钮变量 btn+Xxxxxxx 例如:btnSave, btn Exit, btnPrint等
3. 题标变量 lbl+Xxxxxxxx 例如:lblName, lblSex等
对象类型 | 前缀 |
Canvas | cvs |
CheckBox | chk |
Image | img |
List | lst |
Chioce | chc |
Dialog | dlg |
Event | evt |
Frame | frm |
Menu | menu |
Panel | pnl |
TextArea | txa |
TextField | txf |
jsp命名规范
1. jsp目录命名规范,参照Package命名规则,用小写单个单词作为目录名
2. jsp文件名规范,参照class命名规则,采用首子母大写,多单词间采用大写字母分割
3. jsp传递参数命名规则,参照class变量命名规划
4. 文件命名其它常见规范
jsp主页面(游览功能) XxxxIndex.jsp (一般记录的删除在此页面做连接)
jsp添加功能页面 XxxxAdd.jsp,相关的处理页面XxxxAddAction.jsp
jsp修改功能页面 XxxxModify.jsp, 相关的处理页面XxxxModifyAction.jsp
jsp删除功能页面 XxxxDel.jsp, 相关的处理页面XxxxDelAction.jsp
方法(函数)规范
1. 方法的规模尽量限制在200行以内。
2. 一个方法最好仅完成一件功能。
3. 为简单功能编写方法。
4. 方法的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出。
5. 尽量不要编写依赖于其他方法内部实现的方法。
6. 避免设计多参数方法,不使用的参数从接口中去掉。
7. 用注释详细说明每个参数的作用、取值范围及参数间的关系。
8. 检查方法所有参数输入的有效性。
9. 检查方法所有非参数输入的有效性,如数据文件、公共变量等。
10. 方法名应准确描述方法的功能。
11. 避免使用无意义或含义不清的动词为方法命名
12. 方法的返回值要清楚、明了,让使用者不容易忽视错误情况。
13. 明确方法功能,精确(而不是近似)地实现方法设计。
14. 减少方法本身或方法间的递归调用。
15. 编写可重入方法时,若使用全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护。