一、引入
作为程序员,平时我们最注重的是什么?
1、功能实现?2、效率?当然功能是必然的、要不就要我们程序员就没什么作用了,在实现功能的同事也要注重效率的问题,我们把一个功能实现了,没有注重效率,不但用户体验不好,估计这段程序的利用价值就有所大打折扣了,但是还有一点我们必须考虑的问题,“程序的设计风格”也是非常的重要,目前可能体验不到它的价值,等你开发完了,就能体验到它的重要性了。
1、修改Bug,自己能修改,2、回头别人看你的程序时,一个杂乱无章的程序让人看后有一种不解其意、心绪烦乱的感觉,一个比较小的系统可能看起来还比较好,反正功能不多,最坏的打算,大不了的重做,但是一个庞大的系统,所有的程序代码风格都是这样的话,估计这个系统转交给其他开发团队,转交时,也就是系统的结束日期,即使是没有转交,时间长了,自己开发的程序也不知道是做什么的,开始怀疑是不是自己写的程序。
当然,好的程序设计风格,别人看到之后会有什么体会,看着舒服,跟看小说差不多,同事也能感觉到写这段程序的人一定是个大牛。
二、Java部分
1、命名规则
像什么大小写、字母、数字、下划线之类。驼峰式命名规范、见名知义、名称和业务相关、避免缩略语(写入文档)。尽量不要自己创造编码规范、别人很不容易读。
文件名:XxxAction、IXxxService、XxxServiceImpl、IXxxDao、XxxDaoImpl、XxxUtils、XxxFilter、XxxException、XxxTest、XxxBean、XxxQueryBean、XxxConstant、XxxTag。
方法:saveXxx、createXxx、removeXxx、updateXxx、modifyXxx、cancelXxx、autoXxx、ajaxXxx、deleteXxx、searchXxx,initXxx……(在Action中不要把自己的业务方法用get和set开头给方法命名)动词+名词(操作+对象)
常量:使用大写,下划线分开(DOC_TYPE_BUSINESSTIRP)public static final。
变量:XxxList、XxxMap、(名词)(action中生成get和set方法之后不要修改变量名)。
2、内容格式事项
Java源文件,一个文件建议不能超过2000行(SO中好像要求800行_GenericDaoHibernate(1200+)\DocInfoDaoHibernate(3000-)),超过2000行会显得“臃肿”,一行最好不要超过80个字符。(SO_一个方法的有效代码行原则上不超过80行)。
语句的各元素之间必须有一个半角空格
空格和空行的使用规则
1、空格一般用于关键字和括号之间(方法名和括号之间不要有空格);
2、逗号后面要有空格(Obj.searchXX(arg, arg1, arg2, arg3););
3、数学运算符与操作数之间有空格(二进制与一元运算符除外);
4、for循环(for(int I = 0; i<length; i++));
5、强制类型转换(String str = (String) Obj)。
空行的规则:
1、同一文件的两个代码片段之间或者同一文件中定义两个类(两行);
2、两个方法、方法内部的变量与第一个语句、方法之间的逻辑片段(一行)。
3、注释
//单行注释
/*
* 多行注释
* 第一行注释
* 第二行注释
* ………………………
*/
/**注释块
*
* @return返回值
* @throws抛出异常
* @author 作者
* @date 日期
* @Description 描述
* @version 版本
* @see java.util.Date
* @param 参数
* @since JDK1.0
*/
4、循环
1、循环变量要以“i”,“j”,“k”...的顺序使用。
2、尽量避免在for循环中创建对象
3、当使用try—catch时,不要放在循环体内。
4、多重循环是,循环次数较多的放在最内层,减少循环之间切换的次数(循环最好不要超过两层)
--------------------------------------------------------------------------------------------------------------------------------
"".equals(XXX);
XXX.equals("");
String str = “”+Object;
String str = Object.toString();
---------------------------------------------------------------------------------------------------------------------------------
import java.util.Date;
import java.util.*;
按需类型导入是绝对不会降低Java代码的执行效率的,但会影响到Java代码的编译速度,还有一点,导入两个包有相同的类,在使用时会产生冲突(java.util.Date与java.sql.Date)