©ZTEsecCorporation.Allrightsreserved怎样写规范的代码CodingSpecification综合业务产品线/秦亮2013年12月05日©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved培训提纲代码规定化的意义编码规范指南怎样写规范的代码代码检查工具介绍及使用©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved代码规范化的意义1.作为一个编码人员,你一定维护过别人的代码,你曾经骂过“这真实一坨坨”,还是对其赞叹尤佳呢,我当然希望比人不要骂我的好。事实证明代码总会被很多人去维护;2.一个软件的生命周期中,80%的花费在于维护,规范的代码可以减少编码人员的理解时间,降低维护代价,易于进行二次开发;3.几乎没有任何一个软件,在其整个生命同期中,均由最初的开发人员来维护,所以作为最初的你最好留下好的口碑;4.编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新代码;5.如果你将源码作为产品发布,需要按照规范,确认它是否被很好的打包并且清晰无误;6.本文的目的不在于用条条框框来约束编码人员,而在于用建议性的规范帮助编码人员写出易理解、易维护、易扩展的优秀代码。©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved培训提纲代码规定化的意义编码规范指南怎样写规范的代码代码检查工具介绍及使用©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved编码规范指南排版规范1.程序块采用缩进,缩进空位为4个;2.分解符如“{”和“}”独占一行,并且位于同列;3.较长的语句、表达式、参数要书写多行;4.一行只写一条语句;5.if,for,do,while,case,switch,default独占一行,且语句块都要加“{}”,无论语句多少6.相对独立的业务语句块之间,变量说明后加空行7.对齐只用空格不用TAB,避免不同编辑器对TAB处理不同8.对二个以上的关键字、变量、常量进行对等操作时,变量前后必须留空格,如果if(a==b)9.类属性和方法不用交叉放置,不同存取范围的属性或方法也不远交叉放置©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved编码规范指南注释规范1.有代码的地方就有注释,杜绝没有任何注释的代码,推荐注释量在20%以上;2.包的注释:在包的当前路径放入一名为package.html的HTML文件,方面JavaDoc收集。注释内容简述本包的作用、内容、产品模块、版本、版权等,如:3.文件注释:文件开始,package关键字前面,记载版权说明、描述信息、生成日期、修改历史;如:©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved编码规范指南4、类和接口的注释:在package之后,class或interface之前,描述当前类或接口的功能,作者,生成日期,修改日志,版本号等,如:5、类属性、方法注释:在类或方法的前面,类属性记载属性的功能用处,用/*开头描述注释,放置JavaDoc收集;类方法注释需要记载方法的功能简述、详细、输入参数、输出值、抛出的异常、作者等,如:©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved编码规范指南6、类方法内部注释:①注释应放置被注释语句的正上方或右侧;②注释必须与被注释的语句同缩进;③注释与上面的代码只有用一个空行隔开;④属于同一业务逻辑块的代码,须显示注释用途;⑤对于变量定义和分支语句(if,switch,case)必须注释;⑥写代码的同时写注释,修改代码的同时,也修改注释;⑦注释块内部请不要加缩进;⑧注释内容内部需要着重提示的,请包括标签bxxxx/b⑨对于业务逻辑比较多的方法,建议显示注释步骤1、2,、3、4…⑩注释含义明确,不要写无意义的注释和难以理解的词汇,如;©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved编码规范指南命名规范上面说道了注释规范,注释的目的在于帮助编码人员更好的理解代码、维护代码。当然有些地方,如果命名非常规范,是可以不用注释的,下面就说说又哪些命名规范;1.包的命名:常用命名方式:com.公司名.产品线名.项目名.模块名,所有名称全部小写,如下图:©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved编码规范的范畴2、类名和接口名的命名:尽量使用完整的英文描述,首字母大写,每个英文单词的首字母大写,其余字母小写。抽象类请以Abstract开头,接口的实现类请以Impl接口,工具类请以Util或Utils结尾,如下列命名方式:StaffService、DefaultStaffService、AbstractEntity、StringUtils;3、方法命名;尽量使用完整的英文描述,首字母小写,每个英文单词的首字母大写,其余字母小写,属性存取尽量使用setX、getX,返回布尔类型值的方法尽量使用isX,如下列命名方式:queryStaffById、isCodeExists()、getValue4、属性命名;尽量使用完整的英文描述,首字母小写,每个英文单词的首字母大写,其余字母小写,属性名和方法名不要重复;5、常量命名;使用全部大写的英文描述,每个单词之间用下划线分隔,变量之前近可能使用final修饰,注意:枚举也是一种常量;6、模块内部的组件,尽量以组件名开头,如:StaffDAO、StaffService;7、组件命名,尽量以组件类型结果,如:StaffService、OrgService;8、准确控制类成员方法的修饰符,如果仅限于类内部使用用private修饰,可供子类或本包内部使用用protected修饰,对所有公开,则用public;9、属性和方法的命名不易过长,一般不超过15个字母;©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved培训提纲代码规定化的意义编码规范指南怎样写规范的代码代码检查工具介绍及使用©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved怎样写规范的代码啰嗦了这么多,相信大家对编码规范有一定的了解了,那么你的代码规范吗?你平时注意代码规范吗?怎样写规范的代码,现在就谈几个注意事项:1.包结构清晰,类、接口、方法、属性命名贴切易懂;2.该注释的地方注释,注释清楚、易懂,没有二义性;3.做到上面2点,相信你的代码已经可以打60分以上了;4.接口定义明确,精确方法功能,每个方法只实现一个功能;5.方法内部的代码行数控制在200行以内,一个类的代码行数控制在1000行以内,如果你的类代码在1000行以上,请重新思考设计思路,这里说的代码行数不把注释计算在内;6.多个方法内部如果有相似的功能代码块,应该提取为公用方法;7.尽量将业务相近的方法放在一起,便于寻找;8.方法内部尽量不要catch异常,让外部调用者知道出错细节;9.方法内部对于对象参数的调用,尽量判断非null引用,除非你的设计能保证非空对象;10.不用的数据及时是否,如果数据库连接、集合、共享锁等;11.不要使用技巧性比较高的表达式;©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved怎样写规范的代码1.对于方法抛出的自定义异常,应该写明异常描述信息;2.评估你的数据,对变量采用合理的类型,如一个整数在1个字节8位以内,应该使用byte;3.该用基本数据类型就用基本数据类型,明确告诉虚拟机你的数据类型,避免虚拟机帮你做类型转换,如:©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved培训提纲代码规定化的意义编码规范指南怎样写规范的代码代码检查工具介绍及使用©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved代码检查工具和使用Findbugs代码BUG检查工具,eclipse插件的使用©2006,ZTECorporation.Allrightsreserved.©ZTEsecCorporation.Allrightsreserved代码检查工具和使用CheckStyle代码规范检查工具Thanks!©ZTEsecCorporation.Allrightsreserved