Java代码检查规范指导书_第1页
Java代码检查规范指导书_第2页
Java代码检查规范指导书_第3页
Java代码检查规范指导书_第4页
Java代码检查规范指导书_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java代码检查规范指导书审核:日期:批准:日期:实施日期2010年05月24日版本号A-0内部密 级修改履历版本号日期作者修一要点A-02010-5-24吴兆彬新作成目录1 引言 52 应用范围 53 角色职责 54 输入 55 输出 66 作业流程 66.1 C HECKSTYLE 安装与使用 76.1.1 CheckStyle插件安装 “在线更新”安装方式 “手动下载”安装方式 76.1.2 CheckStyle的配置与使用 导入:规则文件 启用:项目检查 查看:结果视图106.2 ECLIPSEC

2、ODE STYLE 的配置 “代码模版”的配置 “代码格式化”的配置 “代码清理”的配置 116.3 代码修正117 问题反馈(FAQ ) 121) 为什么第一句话需要以标点符号结束? 122) “”应该在同一行”的提示信息? ” 123) “一个局部常数,最好定义为全局常数”的提示信息? 124) “条件逻辑语句应该被移除”的提示信息? 135) 变量应该声明为PRIVATE”的提示信息? 136) “ 工具类不应该存在PRIVATE 或者默认构造函数”的提示信息? 147) “ 参数超过7 个”的提示信息? 148) 类级的常量必

3、须与模式" aA-ZA-Z0-9*(_A-Z0-9+)*$ "相匹配”的提示信息?149) “ 避免在语句中出现嵌套的赋值语句”的提示信息? 151引言在编码规范推进过程中,陆续收到很多开发人员提交上来的疑问,这里逐一 统一做了一个整理和收集,做成能够为开发人员提供指导意见的工作流程,以提供大家互相参考和借鉴,共通把电信信息化部的编码风格做到一致,为编码质量的提高奠定基础。收集上来的问题,主要包括:在插件安装上的困难;在 CheckStyle 提示信 息上的疑问点;使用Eclipse Code Style中的自动修复功能的问题;期望实现的改进建议;2 应用范围本指导书适用于

4、编码阶段,可以进行代码的自查和修订,也可以适用于代码 走查阶段。在纠正代码规范性的基础上,更利于开发人员从业务层面进行走查的 效果。3 角色职责角色职责开发人员对代码进行自查,以及代码的修正;走查人员/QA对代码进行规范性检查;4 输入1)Java代码检查规范;2)Eclipse Code Style设置;3)代码检查配置文件;(2010年大部检查标准_CheckStyle.xml )4)代码修复工具;(2010年大部检查标准_template.xml 、2010年大部检查标准formatter .xml、2010年大部检查标准_Clean Up.xml )5)开发人员的代码;5 输出1)检查

5、结果报表(图、表);2)代码走查情况;6作业流程1.导人:规则文件Clean耶(林用八国前揖行)M导入:代同清理1)检查人员在开发环境(Eclipse )中进行插件的安装,可以选择手动下载 安装方式,也可以选择在线更新方式;2)安装完CheckStyle 之后,需要进行CheckStyle 的配置;这里请选择 导入规则配置文件2010年大部检查标准_CheckStyle.xml »;3)在项目工程上,设置激活 CheckStyle 检查;4)激活并编译项目工程后,打开 CheckStyle 检查结果视图,来查看检查 结果;5)检查人员将检查报告发送给开发人员,由开发人员进行修复;6)

6、开发人员导入修复规则:“代码模板配置文件”2010年大部检查标准 _template.xml、“代码格式化配置文件”2010 年大部检查标准formatter .xml »和“代码清理配置文件”2010 年大部检查标准_Clean Up.xml 。7)开发人员执行CleanUp操作,完成自动修复代码操作;8)对于无法自动化修复的代码,开发人员进行手动修复;6.1 CheckStyle安装与使用6.1.1 CheckStyle 插件安装根据大家的使用习惯,可以选择“在线更新”或者“手动下载”方式,进行CheckStyle 的插件安装。 “在线更新”安装方式1. Eclip

7、se 3.4以上版本的安装方式步骤Eclipse3.4Eclipse3.51、在 Eclipse 中,点击“Help”菜单;选择 “ Software Updates.选择 “ Install NewSoftware.”2、点击 “ Add.” 按 钮,在弹出框中输入输入相关信息;输入:http:/eclipse-cs.sf.ne t/update/;“ Name ”设置为: eclipse-cs;“ Location ” 设 置为: http:/eclipse- te/;3、选择合适的版本进行安装选 择“ EclipseCheckstyle Plug-in01002232103

8、'4、安装完成后,重新启动 Eclipse;2. Eclipse 3.3以下版本的安装方式步骤说明1、在 Eclipse 中,点击 “Help” 菜单;选择 “ Software Updates -> Find and Install”选择 “ Search for new features2、新建一个 “New Remote Site.”输入名称“ eclipse-cs”输入URL地址"http:/eclipse-3、选择合适的版本进行安装4、安装完成后,重新启动Eclipse; “手动下载”安装方式1. 方式一:(如果是低版本的Eclipse ,请将d

9、ropins修改为links目录)步骤说明1、访问URL地址进彳亦载;下载地址: p?group_id=80344&packagejd=1075872、解压安装包解压目录:$Eclipse 安装目 录/dropins/eclipse-cs/eclipse3、整理安装文件将 “ $Eclipse 安 装 目 录/dropins/eclipse-cs/eclipse” 目录下的 “site.xml”文件删除将 “ $Eclipse 安 装 目 录/dropins/eclipse-cs/eclipse/feature§ 目 录下的jar文件解压缩到所在目录的子文 件夹中:“ net

10、.sf.eclipsecs.migration_01002232103.jar” 文件,解压缩到“ net.sf.eclipsecs.migration_01002232103” 目录“ net.sf.eclipsecs_01002232103.jar”文件,解压缩到“ net.sf.eclipsecs_01002232103 ” 目录4、重启 Eclipse2. 方式二:(如果是低版本的Eclipse ,请将dropins替换为links目录;)步骤说明1、访问URL地址进彳亦载;下载地址: p?group id=80344&p

11、ackage id=1075872、解压安装包在任意路径下,新建一个“ eclipse-cs 目录,并在其下新增“ eclipse”目录,将 安装包解压缩到的该目录3、整理安装文件将该目录的“ site.xml”文件删除将该目录的“ features”子目录中的 jar 文件,解压缩到所在目录的子文件夹中:“ net.sf.eclipsecs.migration_01002232103.jar” 文件,解压缩到“ net.sf.eclipsecs.migration_01002232103” 目录“ net.sf.eclipsecs_010022321

12、03.jar”文件,解压缩到“ net.sf.eclipsecs_01002232103 ” 目录4、添加链接文件在“ $Eclipse安装目录/dropins”目录 下,新建一个文本文件,命名为“eclipse-cs.link”,在义件中添加以下内容:path-新建的eclipse-c§目录全路径(如:F:/eclipse/plugins/eclipse-c§5、重启 Eclipse6.1.2 CheckStyle的配置与使用 导入:规则文件步骤说明1、在 Eclipse 中,点击 “Window” 菜单,选择 “ Preferences2、新

13、建配置选择“CheckStyle”配置项,点击“New” 按钮;在“Name”中,输入“2010年大部检查标准”;点击“Import”按钮,选择“ 2010年大 部检查标准(Javsj) .xml”文件; 点击“OK”完成;3、设置默认选中导入的“ 2010年大部检查标准”规 则项,点击“ Set as Default按钮,将该配置设置为默认规则; 启用:项目检查步骤说明1、选中打开的项目名称,点击右键;2、启用/禁用 CheckStyle;启用:在右键采单中,点击 Checkstyle 菜单的 “Activate Checkstyle” 项,则该 项目已经启动CheckStyl

14、e规则; 禁用:在右键采单中,点击 Checkstyle 菜单的 “ Deactivate Checkstyle” 项,贝 该项目已经禁用CheckStyle规则; 查看:结果视图步骤说明1、点击“ Window”菜单,选择 “Show View -> Others”;在“CheckStyle”目录下,后二个可选视 图Checkstyle ViolationsCheckstyle Violations ChartDuplicated Code2、打开三个CheckStyle视图,可 以看到相应的检查结果;6.2 Eclipse Code Style 的配置 ”

15、代码模版”的配置步骤说明1、在 Eclipse 中,点击 “Window” 菜单,选择 “ Preferences2、导入模版配置文件选择 “ JavaCode StyleCode Templates项;点击“Import”按钮,选择“2010年大部检查标准_template.xml”文件;3、设置默认点击“Apply”按钮,则设置该模版配置 为默认配置;”代码格式化”的配置步骤说明1、在 Eclipse 中,点击 “Window” 菜单,选择 “ Preferences2、导入格式化配置文件选择 “JavaCode StyleFormatter 项;点击“Import”按钮,选

16、择“2010年大部检查标准_formatter.xml”文件;3、设置默认点击“Apply”按钮,则设置该格式化配 置为默认配置; “代码清理”的配置步骤说明1、在 Eclipse 中,点击 “Window” 菜单,选择 “ Preferences2、导入格式化配置文件选择 “JavaCode StyleClean U6 项; 点击“Import”按钮,选择“2010年大 部检查标准_Clean Up.xml”文件;3、设置默认点击“Apply”按钮,则设置该清理配置 为默认配置;6.3代码修正1. “代码模版配置”,适用于自动生成“注释”和“代码”时,套用的模版;2. “代码格

17、式化配置”,适用于配合“ Ctrl + Shift + f ”键来使用,完成 代码的自动格式化;(建议在代码提交之前,先执行代码格式化)3. “代码清理配置”配合“ Source菜单的Clean Up ”功能来使用,完成 代码的自动清理;(建议在代码提交之前,先执行代码清理)4. 手动修复,针对个别无法自动化修正的操作,需要开发人员手动进行修 正;问题反馈1 (Faq)1)为什么第一句话需要以标点符号结束?错误写法正确写法/*密码*/*密码。*/private Textbox password;private Textbox password;注释的第一句,确保以正确的标点符号结束,可以是中文

18、 /英文输入法的句号、问号或叹号;因为自动生成的JavaDoc API文档中,会自动将第一句话放在类注释文档的方法大纲表格和索引信息中;如果没有合适的标点符号,会让生成的类注释文档的格式变形;对于使用有效的”inheritDoc”的注释,可以不使用标点符号,因为该标签表示引用了接口的文档注释。2) “”应该在同一行”的提示信息?错误写法正确写法if (condition) if (condition) System. out .print( "");System. out .print(""); else else System. out .print(

19、"");System. out .print( "");提示信息中的“同一行”指的是“大括号”与后面的“ else语句”应该放在同一行。因为在 Sun的Java规范和Eclipse的内置Java规范都是采用同行的书写方式。3) “一个局部常数,最好定义为全局常数”的提示信息?错误写法正确写法if (i = 3) .先声明:public static final intITERATOR_THREE = 3;然后,在方法中使用:if (i = ITERATOR_THREE) .这么做避免出现Magic Number ,修正以后,数值获得正确的含义,更 能表达

20、数值的用途,也更利于提高代码的可读性。4) “条件逻辑语句应该被移除”的提示信息?错误写法正确写法if (userPermission =null ) returnfalse ; else returntrue ;return (userPermission !=null );减少不必要的boolean表达式的逻辑判断,使代码更加简洁,也减少代码行数和阅读量5) “变量应该声明为private ”的提示信息?错误写法正确写法publicstaticprivatestatic PageBase pageBase ;PageBase pageBase ;/* return pageBase 属性*

21、/public static PageBase getPageBase() return pageBase ;/* param pageBase 设置 pageBase 属性*/public static void setPageBase(PageBase SubTest. pageBase = pageBase;pageBase)这个属于类设计规则问题,默认情况下,只允许 static final属性是 public的,其他的属性必须是private的;当然,也可以根据需要设置为包级可见,或者子类可见,或者允许某些成员属性作为特例。这么做 的好处在于,能够保证类的封装性,对外访问的安全性,也

22、更易于代码 的维护。6) “工具类不应该存在public 或者默认构造函数”的提示信息?错误写法正确写法public classStringUtils /没有声明构造函数,或者声明了public的构造函数.public classStringUtils private StringUtils() .这属于类的设计规则问题。对于工具类来说,所有的成员都是静态的, 不必要实例化;但是,对于调用者来说,有可能去实例化该工具类,这 样就造成了不必要的初始化对象实例,也就导致内存浪费。7) “参数超过7个”的提示信息?错误写法正确写法public static StringwindowsalertRed

23、irectBack(Stringpublic static StringwindowsalertRedirectBack(Stringmsg,HttpServletRequest request, String dvtype, String dvid, String aurl,String roomid, String roomname, String rmwidth, String rmheight) msg,HttpServletRequest request, Po po) 这属于大小规则问题。将这么多参数,封装成一个或者多个对象,然后 将这个或几个对象作为方法输入。这么做既简洁,而且调

24、用者也不容易 出错。8) “类级的常量必须与模式 " AA-ZA-Z0-9*(_A-Z0-9+)*$相匹配”的提示信息?错误写法正确写法privatestaticfinalint 口privatestaticfinalint 口dayArray = new int 口 31,28, 31,DAY_ARRAY = new int 口 31,28, 31,30, 31,30,30, 31, 30,31,31,30,31,30,31,31, 30, 31, 30, 31 ;31 ;这属于命名规范问题。对于常量名必须全部使用大写字母,不同单词问 使用下划线分隔。9) “避免在语句中出现嵌套的

25、赋值语句”的提示信息?错误写法for ( int i = 0; (i = s.indexOf(s1) >= 0;) arrayList.add(s.substring(0, i);s = s.substring(i + 1, s.length();正确写法for (int i = s.indexOf(s1);i >= 0; i = s.indexOf(s1)arrayList.add(s.substring(0, i);s = s.substring(i + 1, s.length();将赋值语句置于嵌套语句之中,如上面例子中的“(i = s.indexOf(sl) >= 0; ”语句中嵌套了 “ i = s.indexOf(sl)”赋值语句;这么做,往往加大代码阅读的难度,也不易于维护,因此,尽量不要出现嵌套在其他语 句中的赋值语句。8 问题反馈2 (Faq)10) “类应该被声明为巾nal ”的提示信息?问题描述public class BaseCommonConstant private BaseCommonConstant() 该类作为工具类的基类,允许子类继承final ,这样子类就没有办法继承了。但如果将 p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论