Java开发规范(编程风格).pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Java开发规范(编程风格).pdf》由会员分享,可在线阅读,更多相关《Java开发规范(编程风格).pdf(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java 开发规范 Java 开发规范 Java Development Specification 版本 2.0 版本 2.0 当前版本 2.0alpha 制定日期 2004-07-18 文档编号 Java_Dev_Spec 文档作者 韩卿(l_walker)电子邮件 walkerskyinn.org Skyinn Group(http:/www.skyinn.org)Skyinn Group(http:/www.skyinn.org)文档名称 Java开发规范 版本 2.0alpha 文档编号 Java_Dev_Spec 日期 2004-7-18 修订历史记录 修订历史记录 日期 日期 版
2、本 版本 说明 说明 作者 作者 2002-9-7 1.0 创建文件 韩卿 2002-9-8 1.0 修改、增加 韩卿 2002-9-9 1.0 完成 韩卿 2003-1-19 1.0 更新 韩卿 2003-05-28 1.1 修改并完成 韩卿 2004-7-3 2.0 修改版式 韩卿 2004-7-11 20 更新文档 韩卿 2004-7-18 2.0 alpha 更新并发布 韩卿 共享 Copyright(C)Skyinn Group,2002-2004 http:/www.skyinn.org 第 2 页/共 2 页 文档名称 Java开发规范 版本 2.0alpha 文档编号 Java
3、_Dev_Spec 日期 2004-7-18 目录 目录 第第 1 章章 绪论绪论.5 1.1 目的目的.5 1.2 范围范围.5 1.3 版权声明版权声明.5 1.4 参考资料参考资料.5 1.5 概述概述.5 第第 2 章章 代码组织与风格代码组织与风格.7 2.1 基本原则基本原则.7 2.2 缩进缩进.7 2.3 长度长度.7 2.4 行宽行宽.7 2.5 间隔间隔.7 2.6 对齐对齐.7 2.7 括号括号.8 第第 3 章章 注释注释.9 3.1 基本原则基本原则.9 3.2 JAVADOC.9 3.3 文件与包注释文件与包注释.9 3.4 类、接口注释类、接口注释.10 3.5
4、方法注释方法注释.10 3.6 其他注释其他注释.11 3.7 注释参考表注释参考表.11 第第 4 章章 命名命名.13 4.1 基本原则基本原则.13 4.2 文件、包文件、包.13 4.3 类、接口类、接口.13 4.4 字段字段.14 4.5 方法方法.14 4.6 异常异常.15 4.7 命名约定表命名约定表.15 第第 5 章章 声明声明.17 5.1 基本原则基本原则.17 5.2 包包.17 5.3 类、接口类、接口.17 5.4 方法方法.17 5.5 字段字段.18 5.6 示例示例.18 第第 6 章章 类与接口类与接口.20 6.1 基本原则基本原则.20 6.2 抽象
5、类与接口抽象类与接口.20 6.3 继承与组合继承与组合.20 共享 Copyright(C)Skyinn Group,2002-2004 http:/www.skyinn.org 第 3 页/共 3 页 文档名称 Java开发规范 版本 2.0alpha 文档编号 Java_Dev_Spec 日期 2004-7-18 6.4 构造函数和静态工厂方法构造函数和静态工厂方法.20 6.5 TOSTRING(),EQUALS(),HASHCODE().20 6.6 SINGLETON CLASS.22 第第 7 章章 方法方法.23 7.1 基本原则基本原则.23 7.2 参数和返回值参数和返回值
6、.23 第第 8 章章 表达式与语句表达式与语句.24 8.1 基本原则基本原则.24 8.2 控制语句控制语句.24 8.3 循环语句循环语句.25 第第 9 章章 错误与异常错误与异常.26 9.1 基本原则基本原则.26 9.2 已检查异常与运行时异常已检查异常与运行时异常.26 9.3 异常的捕捉与处理异常的捕捉与处理.26 第第 10 章章 测试与测试与BUG跟踪跟踪.27 10.1 基本原则基本原则.27 10.2 测试驱动开发测试驱动开发.27 10.3 JUNIT单元测试单元测试.27 10.4 自动测试与持续集成自动测试与持续集成.27 10.5 BUG跟踪和缺陷处理跟踪和缺
7、陷处理.27 第第 11 章章 性能与安全性能与安全.28 11.1 基本原则基本原则.28 11.2 STRING与与STRINGBUGFFER.28 11.3 集合集合.28 11.4 对象对象.28 11.5 同步同步.28 11.6 FINAL.28 11.7 垃圾收集和资源释放垃圾收集和资源释放.29 第第 12 章章 其他其他.30 12.1 目录结构目录结构.30 12.2 CVS注释与标记注释与标记.31 12.3.31 第第 13 章章 附录附录.32 13.1 CVS标识符标识符.32 13.2 注释模板注释模板.32 13.3 常用缩写简表常用缩写简表.33 13.4 版
8、权声明模板版权声明模板.33 13.5 示例代码示例代码.34 共享 Copyright(C)Skyinn Group,2002-2004 http:/www.skyinn.org 第 4 页/共 4 页 文档名称 Java开发规范 版本 2.0alpha 文档编号 Java_Dev_Spec 日期 2004-7-18 Java 开发规范 Java 开发规范 第1章 绪论 第1章 绪论 1.1 目的 1.1 目的 本规范的目的是使本组织能以标准的、规范的方式设计和编码。通过建立编码规范,以使每个开发人员养成良好的编码风格和习惯;并以此形成开发小组编码约定,提高程序的可靠性、可读性、可修改性、可
9、维护性和一致性等,增进团队间的交流,并保证软件产品的质量。1.2 范围 1.2 范围 本规范适用于“Skyinn Group”及其下所有软件项目、产品等的设计、开发以及维护、升级等。本规范使用于“Skyinn Group”的所有软件开发人员,在整个软件开发过程中必须遵循此规范。1.3 版权声明 1.3 版权声明 本文档为共享文档,不限转载,但请保持本文档的完整性。您可以修改本文档以符合您或组织、公司等之实际,但请在文档中保持对本文档的引用和说明。未经本人授权,任何个人、组织或单位不得将本文档用于书面发表、转载、摘录等,亦不得用于其他商业行为。本人及本组织不承担任何因使用、参考本文档等而导致的任
10、何可能责任或连带责任。1.4 参考资料 1.4 参考资料 Java 编程指南见 RUP(Rational Unified Process)中文版。Java 技术手册(Java in a Nutshell)Sun Java 语言编码规范(Java Code Conventions)Effictive Java Java Pitfalls Java Rules 1.5 概述 1.5 概述 对于代码,首要要求是它必须正确,能够按照设计预定功能去运行;第二是要求代码必须清晰易懂,使自己和其他的程序员能够很容易地理解代码所执行的功能等。然而,在实际开发中,每个程序员所写的代码却经常自成一套,很少统一,导
11、致理解困难,影响团队的开发效率及系统的质量等。因此,一份完整并被严格执行的开发规范是非常必须的,特别是对软件公司的开发团队而言。此规范参考自业界标准编程规范并结合本人多年编程经验、习惯等而制定,在本人工作过的公司中都曾参考本文档而形成内部开发规范并执行。现在将本文档共享之,希望能对各位有所帮助,并做引玉之砖,希望各位朋友将自己的经验等增补进去,对我们所热爱的软件业有所裨益。最根本的原则:最根本的原则:代码虽然是给机器运行的,但却是给人读的!运用常识。当找不到任何规则或指导方针,当规则明显不能适用,当所有的方法都失效的时 共享 Copyright(C)Skyinn Group,2002-2004
12、 http:/www.skyinn.org 第 5 页/共 5 页 文档名称 Java开发规范 版本 2.0alpha 文档编号 Java_Dev_Spec 日期 2004-7-18 侯:运用常识并核实这些基本原则。这条规则比其它所有规则都重要。常识是必不可少。当出现该情况时,应当及时收集并提交,以便对本规范进行修改。您可以在以下地址中找到本文档的最新版本:http:/www.skyinn.org/wiki/Wiki.jsp?page=JavaDevSpec 本文档尚未完善,我将不断更新之,如果您有任何问题、建议或意见等请联系我:walkerskyinn.org 共享 Copyright(C)
13、Skyinn Group,2002-2004 http:/www.skyinn.org 第 6 页/共 6 页 文档名称 Java开发规范 版本 2.0alpha 文档编号 Java_Dev_Spec 日期 2004-7-18 第2章 代码组织与风格 第2章 代码组织与风格 2.1 基本原则 2.1 基本原则 代码的组织和风格的基本原则是:便于自己的开发,易于与他人的交流。因个人习惯和编辑器等可以设置和形成自己的风格,但必须前后一致,并符合本规范的基本要求和原则。本章所涉及到的内容一般都可在 Java 集成编辑环境中进行相应设置,也可由 Ant 等调用checkstyle 等来进行自动规整。2
14、.2 缩进 2.2 缩进 子功能块当在其父功能块后缩进。当功能块过多而导致缩进过深时当将子功能块提取出来做为子函数。代码中以 TAB(4 个字符)缩进,在编辑器中请将 TAB 设置为以空格替代,否则在不同编辑器 或设置下会导致 TAB 长度不等而影响整个程序代码的格式。例如:Table1缩进示例 public void methodName()if(some condition)for()/some sentences /end for /end if 2.3 长度 2.3 长度 为便于阅读和理解,单个函数的有效代码长度当尽量控制在 100 行以内(不包括注释行),当一个功能模块过大时往往造成
15、阅读困难,因此当使用子函数等将相应功能抽取出来,这也有利于提高代码的重用度。单个类也不宜过大,当出现此类情况时当将相应功能的代码重构到其他类中,通过组合等方式来调用,建议单个类的长度包括注释行不超过 1500 行。尽量避免使用大类和长方法。2.4 行宽 2.4 行宽 页宽应该设置为 80 字符。一般不要超过这个宽度,这会导致在某些机器中无法以一屏来完整显示,但这一设置也可以灵活调整。在任何情况下,超长的语句应该在一个逗号后或一个操作符前折行。一条语句折行后,应该比原来的语句再缩进一个 TAB 或 4 个空格,以便于阅读。2.5 间隔 2.5 间隔 类、方法及功能块间等应以空行相隔,以增加可读性
16、,但不得有无规则的大片空行。操作符两端应当各空一个字符以增加可读性。相应独立的功能模块之间可使用注释行间隔,并标明相应内容,具体参看附录的代码示例 2.6 对齐 2.6 对齐 关系密切的行应对齐,对齐包括类型、修饰、名称、参数等各部分对齐。连续赋值时当对齐操作符。共享 Copyright(C)Skyinn Group,2002-2004 http:/www.skyinn.org 第 7 页/共 7 页 文档名称 Java开发规范 版本 2.0alpha 文档编号 Java_Dev_Spec 日期 2004-7-18 当方法参数过多时当在每个参数后(逗号后)换行并对齐。当控制或循环中的条件比较长
17、时当换行(操作符前)、对齐并注释各条件。变量定义最好通过添加空格形成对齐,同一类型的变量应放在一起。如下例所示:Table2对齐示例/变量对齐-int count =100;int length =0;String strUserName=null;Integer porductCode=new Integer(2);/产品编码数组 /参数对齐-public Connection getConnection(String url,String userName,String password)throws SQLException,IOException /换行对齐-public final
18、static String SQL_SELECT_PRODUCT=“SELECT*“+“FROM TProduct WHERE Prod_ID=”+prodID;/条件对齐-if(Condition1 /当条件一&Condition2 /并且条件二|Condition3)/或者条件三 for(int i=0;i productCount.length;/循环终止条件 i+)2.7 括号 2.7 括号 中的语句应该单独作为一行,左括号当紧跟其语句后,右括号永远单独作为一行且与其匹配行对齐,并尽量在其后说明其匹配的功能模块。较长的方法以及类、接口等的右括号后应使用/end.等标识其结束。如:类的结
19、束符:/EOC ClassName,方法结束符:/end methodName(),功能块结束:/end if.userName is null?循环快结束:/end for.every user in userList 不要在程序中出现不必要的括号,但有时为了增加可读性和便于理解,当用括号限定相应项。左括号是否换行等随个人习惯而定,若换行则当与其前导语句首字符对齐。共享 Copyright(C)Skyinn Group,2002-2004 http:/www.skyinn.org 第 8 页/共 8 页 文档名称 Java开发规范 版本 2.0alpha 文档编号 Java_Dev_Spec
20、 日期 2004-7-18 第3章 注释 第3章 注释 3.1 基本原则 3.1 基本原则 3.1.1 注释应该增加代码的清晰度。代码注释的目的是要使代码更易于被其他开发人员等理解。3.1.2 如果你的程序不值得注释,那么它很可能也不值得运行。3.1.3 避免使用装饰性内容。3.1.4 保持注释的简洁。3.1.5 注释信息不仅要包括代码的功能,还应给出原因。3.1.6 不要为注释而注释。3.1.7 除变量定义等较短语句的注释可用行尾注释外,其他注释当避免使用行尾注释。3.2 JavaDoc 3.2 JavaDoc 对类、方法、变量等的注释需要符合 JavaDoc 规范,对每个类、方法都应详细说
21、明其功能、条件、参数等,并使用良好的 HTML 标记格式化注释,以使生成的 JavaDoc 易阅读和理解。类注释中当包含版本和作者信息,使用 CVS 标记自动跟踪版本变化和修改记录,具体内容参见CVS 使用手册及下面几节的相应内容等,CVS 标识符请参加附录中的CVS 标识符。3.3 文件与包注释 3.3 文件与包注释 在每个文件、包的头部都应该包含该文件的功能、作用、作者、版权以及创建、修改记录等。并在其中使用 CVS 标记自动跟踪版本变化及修改记录等信息。注意是/*/注释而不是/*/JavaDoc 注释。文件注释模板见附件注释模板中的文件注释部分。版权声明部分请参见附件版权声明并注意更新到
22、最新版本。Table3 文件注释示例:/*=*$Id:User.java,v 1.1 2002/09/07 14:36:23 l_walker Exp$*Created:2003-3-23 20:18:53 by l_walker *=*ProjectName *Description *=*Copyright Information.*=*/每个包当有包注释,在源码及 JavaDoc 相应包路径下建立 package.html 以描述包的功能、作用等。共享 Copyright(C)Skyinn Group,2002-2004 http:/www.skyinn.org 第 9 页/共 9 页
23、文档名称 Java开发规范 版本 2.0alpha 文档编号 Java_Dev_Spec 日期 2004-7-18 3.4 类、接口注释 3.4 类、接口注释 在类、接口定义之前当对其进行注释,包括类、接口的目的、作用、功能、继承于何种父类,实现的接口、实现的算法、使用方法、示例程序等,在作者和版本域中使用 CVS 标记自动跟踪版本变化等,具体参看附件注释模板中相关部分。Table4 类注释示例/*字符串实用类。*定义字符串操作时所需要用到的方法,如转换中文、HTML 标记处理等。*author$Author:l_walker$*version$Revision:1.2$Date:2003/0
24、5/15 02:10:27$*/public class StringUtil 3.5 方法注释 3.5 方法注释 依据标准 JavaDoc 规范对方法进行注释,以明确该方法功能、作用、各参数含义以及返回值等。复杂的算法用/*/在方法内注解出。参数注释时当注明其取值范围等 返回值当注释出失败、错误、异常时的返回情况。异常当注释出什么情况、什么时候、什么条件下会引发什么样的异常 Table5 方法注释示例/*执行查询。*该方法调用 Statement 的 executeQuery(sql)方法并返回 ResultSet*结果集。*param sql 标准的 SQL 语句 *return Resu
25、ltSet 结果集,若查询失败则返回 null *throws SQLException 当查询数据库时可能引发此异常 */public ResultSet executeQuery(String sql)throws SQLException /Statement 和 SQL 语句都不能为空 if(null!=stmt&!StringUtil.isEmpty(sql)/返回查询执行结果 return stmt.executeQuery(sql);return null;/end executeQuery()共享 Copyright(C)Skyinn Group,2002-2004 http:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 开发 规范 编程 风格
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内