您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 电信事业部Java编程规范
公司名称电信事业部Java项目编程规范版本1.0_____________________________________________说明:此表相关部门签字后,请交与行政人事部审核备案。Page2of35修订历史记录日期版本说明作者27日/10月/2008年0.6初步拟定田标1日/11月/2008年0.8杨济嘉10日/11月/2008年0.8补充错误处理和异常处理事件部分的内容田标_____________________________________________说明:此表相关部门签字后,请交与行政人事部审核备案。Page3of35目录1.简介61.1目的61.2范围61.3定义、首字母缩写词和缩略语61.4参考资料61.5概述62.代码组织与风格62.1开头注释72.2包和引入语句72.3类的注释72.4类声明72.5类的成员变量72.6构造函数72.7类方法82.8关于代码组织与风格的推荐示例93.缩进排版153.1行长度163.2换行164.注释164.1类的注释164.2方法的注释174.3类属性的注释174.4非JavaDoc的注释175.命名175.1包的命名175.2类的命名185.3接口的命名185.4方法的命名185.5变量的命名185.6Final变量(常量)的命名185.7参数的命名186.声明186.1每行声明变量的数量186.2初始化186.3避免覆盖186.4数组的声明186.5类和接口的声明187.表达式和语句18_____________________________________________说明:此表相关部门签字后,请交与行政人事部审核备案。Page4of357.1简单语句187.2复合语句187.3选择和循环语句197.4switch-case语句197.5try-catch/try-catch-finally语句208.空白208.1空行208.2空格209.设计类和方法219.1创建具有很强内聚力的类219.2创建松散连接和高度专用的方法219.2.1使所有方法都执行专门的任务219.2.2尽量使方法成为自成一体的独立方法219.2.3设计类和方法时,要达到下列目的229.3编程原则229.3.1为方法和类赋予表义性强的名字229.3.2为每个方法赋予单个退出点229.3.3创建方法时,始终都应显式地定义它的作用域。229.3.4用参数在方法之间传递数据2210.一些编程惯例2310.1提供对实例以及类变量的访问控制2310.2引用类变量和类方法2310.3常量2310.4变量赋值2310.5圆括号2311.内存管理2312.错误处理和异常事件2312.1错误捕获方式:2312.1.1FATAL级别的例外:2312.1.2其他级别的例外:2312.1.3释放资源统一在final里面做.2312.2错误日志处理:2312.2.1FATAL级别:2412.2.2ERROR级别:2412.2.3WARN级别:2412.2.4INFO级别:2412.2.5DEBUG级别:2413.可移植性2414.复用24_____________________________________________说明:此表相关部门签字后,请交与行政人事部审核备案。Page5of3515.涉及到代码质量的问题2415.1制造多余代码2415.2质量上有缺陷的代码2515.3很多小技巧3115.4致命的问题3416.编译问题3517.附录:指南概要35_____________________________________________说明:此表相关部门签字后,请交与行政人事部审核备案。Page6of35Java项目编程指南1.简介此编程指南的文档用来规范每一个一线开发人员代码的编写,试图确保代码编写的规范化和代码编写的质量,进而提高我们开发的项目的质量和开发团队的编码水平。此编程指南的内容涵盖了从源代码文件的结构、格式,对常见代码要素的格式和内容两个方面的要求,到如何避免长犯的错误,避免bug、如何提高代码的严谨性、可靠性和提高质量等方方面面的内容,需要每一个开发人员在每天的工作中严格遵守。1.1目的提高编码工作的规范性提高完成的代码的规范性避免编写多余、低效、漏洞百出的代码加强开发人员的技术素养、提高开发工作的质量1.2范围这个文档的范围包括:一个源代码文件的内容,应该怎样组织,风格怎样代码中注释的位置、写法、要求包、类、方法、常量、变量、属性等的命名的要求声明的编写要求表达式的编写要求内存管理方面的要求异常处理方面的要求针对可移植性的编程要求针对复用的编程要求这些要求对于提高代码质量、提高代码的规范性有帮助,定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为人员变更而带来的损失。这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性,需要各开发同事努力遵守。1.3定义、首字母缩写词和缩略语[本小节应提供正确理解此编程指南所需的全部术语、首字母缩写词和缩略语的定义。这些信息可以通过引用项目词汇表来提供。]1.4参考资料Sun公司制定的Java编程规范一些基础Java库,包括JDK、Spring、Apache的一些开业项目的代码编写方式1.5概述文档中接下来的内容首先阐述了关于代码的组织和风格有关的建议,接下来阐述了围绕编写高效率、可移植性、错误处理等论题的一些建议。2.代码组织与风格每个Java源文件都包含一个单一的公共类或接口。若私有类和接口与一个公共类相关联,可以将它们和公共类放入同一个源文件。公共类必须是这个文件中的第一个类或接口。Java源文件的组织如下:_____________________________________________说明:此表相关部门签字后,请交与行政人事部审核备案。Page7of352.1开头注释所有的源文件都应该在开头有一个C语言风格的注释,其中列出类名、版本信息、日期和版权声明:/**Classname**Versioninformation**Date**Copyrightnotice*/2.2包和引入语句package行要在import行之前,两者之间以空行分隔。import中标准的包名要在本地的包名之前,而且按照字母顺序排列。(在Eclipse中,可以用快捷键Ctrl+Shift+O来导入需要的类和清除该类不需要的import语句。)packagehotlava.net.stats;importjava.io.*;importjava.util.Observable;importhotlava.util.Application;2.3类的注释接下来的是类的注释,一般用来解释类的作用,形式如下:/***Aclassrepresentingasetofpacketandbytecounters*Itisobservabletoallowittobewatched,butonly*reportschangeswhenthecurrentsetiscomplete*/2.4类声明包括类的访问修饰符、类名、继承的父类、实现的接口等。2.5类的成员变量建议以下面先后顺序组织类成员变量:a.静态变量(static):首先是类的公共变量(public),随后是保护变量(protected),再后是包一级别的变量(没有访问修饰符),最后是私有变量(private)。b.实例变量:首先是类的公共变量(public),随后是保护变量(protected),再后是包一级别的变量(没有访问修饰符),最后是私有变量(private)。一般情况下,不鼓励以public的方式定义类的实例变量,对类的实例变量的操作应该通过类的方法,比如getter和setter来进行。public的成员变量必须生成文档(JavaDoc)。proceted、private和package定义的成员变量如果名字含义明确的话,可以没有注释。/***Packetcounters*/protectedint[]packets;2.6构造函数构造函数应该用递增的方式写(比如:参数多的写在后面)。_____________________________________________说明:此表相关部门签字后,请交与行政人事部审核备案。Page8of352.7类方法静态方法一般放在最前面。类方法应该按功能,而非作用域或访问权限,分组。例如,一个私有的类方法可以置于两个公有的实例方法之间。其目的是为了更便于阅读和理解代码。/***Setthepacketcounters(suchaswhenrestoringfromadatabase).**@paramr1*@paramr2*@paramr3*@paramr4*@throwsIllegalArgumentException*/protectedfinalvoidsetArray(int[]r1,int[]r2,int[]r3,int[]r4)throwsIllegalArgumentException{//Ensurethearraysareofequalsizeif(r1.length!=r2.length||r1.length!=r3.length||r1.length!=r4.length)thrownewIllegalArgumentException(Arraysmustbeofthesamesize);System.arraycopy(r1,0,r3,0,r1.length);System.arraycopy(r2,0,r4,0,r1.length);}下面JDK中NullPointerException这个类的源代码,是一个很好的示例:/**@(#)NullPointerException.java1.2005/11/17**Copyright2006SunMicrosystems,Inc.Allrightsreserved.*SUNPROPRIETARY/CONFIDENTIAL.Useissubjecttolicenseterms.*/packagejava.lang;/***Thrownwhenanapplicationattemptstousecodenull/codeina*casewhereanobjectisrequired.Theseinclude:*ul*liCallingtheinstancemethodofacodenull/codeobject.*liAccessingormodifyingthefieldofacodenull/codeobject.*liTakingthelengthofcodenull/codeasifitwereanarray.*liAccessingormodifyingtheslotsofcodenull/codeasifit*wereanarray.*liThrowingcodenull/codeasifitwereacodeThrowable/code*value.*/ul*p*Applicationsshouldthrowinstancesofthisclasstoindicate*otherillegalusesofthecodenull/codeobject.**@authorunascribed*@version1.20,11/17/05*@sinceJDK1.0*/publicclassNullPointerExceptionextendsRuntimeException{/**_____________________________________________说明:此表相关部门签字后,请交与行政人事部审核备案。Page9of35*Constructsaco
本文标题:电信事业部Java编程规范
链接地址:https://www.777doc.com/doc-2162315 .html