• / 47

[计算机软件及应用]Java开发规范.doc

资源描述:
《[计算机软件及应用]Java开发规范.doc》由本站会员分享,支持在线阅读,更多《[计算机软件及应用]Java开发规范网友投稿.doc》相关的内容可在三九文库网上搜索。

Java开发规范Aostar&YinHai开发管理文件编号:文件名称:Java开发规范版本号日期:项目名称项目编号:项目负责人立项日期:修订历史记录日期版本号作者说明2009625V1.0王流一目录第1章序言3第2章java一般性研发规范52.1代码格式52.1.1包、类、方法的命名规范:52.1.2方法的命名应注意避免与java中具有特殊意义的名称例如equals。

hashCode,clone,finalizer等冲突72.1.3Javabean中取得boolean类型的属性值必须使用is****形式命名82.1.4if,else,while,for等必须使用{}92.1.5类必须包含在包里,禁止出现无包的类102.1.6类和方法必须拥有注释,注释量占总体代码25%以上,类头部,以及方法头部的注释应符合javadoc标准。102.2基本语法112.2.1不能随意捕捉异常,原则上谁捕捉谁处理112.2.2if,while,try,finally,switch,synchronized,staticinstantiation里面应有相应的逻辑处理。

不能为空。122.2.3在处理循环中,不能在程序中人为的改变步长。132.2.4将简单类型int,short,float,double等转化成字符串时,需使用其对应类的toString方法。132.2.5javaBean中hashCode,以及equals方法必须同时override。142.2.6懒式方式创建对象:不能采用双检查惯用法172.2.7不能在finally中返回值。182.2.8Boolean实例化时,应用使用Boolean.valueOf,Boolean.TRUE,Boolean.FALSE。192.2.9Integer,

Byte,Short,Long等实例化时,应用使用valueOf192.2.10对于多个if语句嵌套的情况下能够整合尽量整合。202.2.11overridefunction,不能只有super.function语句,否则视为无效代码202.2.12Collection.toArray的注意事项。212.2.13对于BigDecimal方法,应避免使用float值,double值进行创建,应使用字符串形式创建。212.2.14String,BigDecimal,BigInteger等值类型调用replace,add等方法的注意事项。222.2.15需要注意的引起NullException的语句。

222.2.16ResultSet使用next时,需要判断是否具有记录再进行一下步操作。242.2.17字符串使用相应的规则。252.2.18禁止直接调用System.gc(),System.getRuntime().gc(),System.runFinalization()。262.2.19finalize相应的规则。272.2.20禁止在代码中使用System.out,ex.printStackTrace打印日志。272.2.21系统资源释放(谁创建的,谁关闭)282.2.22使用Clone时相应的规则。322.2.23javaBean类必须实现Serialize接口。

322.2.24比较对象相等应使用equals,而不是==。322.2.25Array数组拷贝应使用System.arrayCopy。332.3耦合性以及设计332.3.1switch语句必须包含default标签。332.3.2精简boolean表达式以及boolean返回值。342.3.3在方法实现中应避免对输入的值参进行改变。352.3.4在创建方法中,应避免调用被override的方法352.3.5publicstatic常量属性必须final。362.3.6Abstract类必须含有abstract方法。372。

3.7接口依赖性。372.4代码质量因素382.4.1Class代码行数限制382.4.2函数代码质量38第3章java安全性检查规范403.1跨站脚本XSS403.2违反信任边界规则(TrustBoundaryViolation)413.3不安全的反射(UnsafeReflection)423.4SQL注入(SQLInjection)433.5系统信息泄露(SystemInformationLeakage)443.6资源注入(resourceinjection)45第1章序言本规范的目的在于:建立一个可行可操作的编程标准、约定和指南。

以规范公司java代码研发工作。2009年为公司的质量年,为了提高公司研发能力,该规范的制定是为了规范java代码开发,提高java开发质量,从代码的层面规范并提高java项目的研发水平。该规范由运营中心技术小组制定,运营中心技术小组将结合PMD检查工具以及相应的检查工具,组织技术监控人员对重点项目以及新的java项目定期检查,对代码质量进行评估,对代码质量较差限期整改,并报运营中心备案作为项目考核依据。本规范适用于2009年公司java代码研发规范。本规范的内容包括两个方面:java开发一般规范,以及java代码开发安全性规范。Java代码开发一般规范主要从java基本语法,代码格式,耦合性以及设计方面,以及代码质量因子等进行描述。

java代码开发安全性规范主要从sql注入,资源注入,跨站脚步,安全边界违例,系统信息泄露进行描述。为了方便并配合PMD检查工具等相应检查工具,方便开发者针对违规代码进行调整,本规范中java一般开发规范描述形式将结合PMD,并提供示例代码,其形式如下:n规范描述:nPMD规则名称:nPMD级别(注1):n违规示例代码:n合法示例代码:本规范中java安全开发规范部分将结合具体项目,对出现安全隐患的代码进行分析,以及相应的解决办法和思路上进行分析,其具体格式如下:n风险及危害:n应对措施:n非安全代码示例n安全代码示例本规范解释权归运营中心技术小组。

属于运营中心为了提供公司研发水平以及质量的一系列措施中的一部分,在后续的版本中将根据具体需要进行修改以及调整。注1:PMD级别分为5级Errorhigh必须修改Error不修改的项需要进行说明Warninghigh代码中该项每千行代码不能多于2%;Warning参考Information参考注2:对于Error级别需要项目组通过以下文字说明:文件名代码行数触发PMD规则不修改原因技术小组审核意见技术小组审核后给出相应的整改意见,对于有争议的问题,可直接与运营中心技术小组领导成员沟通。第2章java一般性研发规范2。

1代码格式2.1.1包、类、方法的命名规范:n规范描述:包,类,方法命名只能为27个英文字符以及数字,不能包括特殊字符例如,,$等;包命名,首字符必须小写;类命名,首字符必须大写;方法命名,首字符必须小写;常量命名,必须全部大写;变量,以及属性命名,首字符必须小写;在类中非创建方法其命名应避免与类命一致;在类中属性的命名应避免与类命一致;在同一类中属新命名应避免与方法命名一致;在方法中命名临时变量时应避免与方法的参数名一致;nPMD规则名称:AvoidDollarSignsPackageCaseClassNamingConventionsMethodNamingConventionsSuspiciousConstantFieldNameVariableNamingConventionsMethodWithSameNameAsEnclosingClassAvoidFieldNameMatchingTypeNameMisleadingVariableNamen规则级别:ErrorHighwarnHighwarnHighwarnHighwarnHighErrorHighErrorHighErrorHighn违规示例代码:1、常量、变量命名publicstaticfinalintmynum=0。

//常量应大写publicStringMyTest=""//变量命名,首字符小写DataModuleDMTest=newDataModule();//变量命名,首字符小写2、方法命名publicclassFoo{publicvoidFooStuff(){}}3、类命名:首字符应大写publicclassfoo{}4、非法使用特殊字符命名publicclassFo$o{//yikes!}5、非创建方法命名应避免与类名一致publicclassMyClass{//thisisbadbecauseitisamethodpublicvoidMyClass(){}//thisisOKbecauseitisaconstructorpublicMyClass(){}}6、方法中临时变量的命名应避免与其参数一致:publicvoidbar(Stringmbaz){//Badintmboz=42。

//Bad}7、在类中属性的命名应避免与类命一致:publicclassFooextendsBar{//Theresprobablyabetternameforfoointfoo;}8、在同一类中属性命名应避免与方法命名一致:publicclassFoo{Objectbar;//barisdataoranactionorboth?voidbar(){}}n合法代码示例:1、常量、变量命名:publicstaticfinalintMYNUM=0;//publicStringmyTest=""DataModuledmTest=newDataModule()。

2、方法命名:首字符应小写publicclassFoo{publicvoidfooStuff(){}}3、类命名:首字符应大写publicclassFoo{}2.1.2方法的命名应注意避免与java中具有特殊意义的名称例如equals,hashCode,clone,finalizer等冲突n规范描述:在java中某些方法是具有特殊意义的,例如booleanequals(Objecto)是比较两个对象是否相;inthashCode()取得hash值,主要用于hash表;Objectclone()用于复制对象;voidfinalizer()用于该类实例化的对

这些方法具有固定的形参格式,固定的返回值,不能被其他形式或者用于其他方面的方法override,否则将降低代码可读性,并为代码维护带来隐患。nPMD规则名称:SuspiciousEqualsMethodNameSuspiciousHashcodeMethodName;FinalizeOverloaded;BooleanGetMethodName;n规则级别:ErrorHighErrorHighErrorHighErrorHighn违规示例代码:1、可疑的equals方法命名publicclassFoo{publicintequals(Objecto){//oops。

展开阅读全文
 温馨提示:
下载提示
关于本文
本文标题:[计算机软件及应用]Java开发规范.doc
链接地址:https://www.999doc.com/661783.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 联系我们

copyright © 2016-2021  999doc三九文库网 版权所有

经营许可证编号:苏ICP备2020069977号  网站客服QQ:772773258  联系电话:0518-83073133