java编码规范培训.ppt
《java编码规范培训.ppt》由会员分享,可在线阅读,更多相关《java编码规范培训.ppt(43页珍藏版)》请在三一办公上搜索。
1、Java编码规范培训教材,2009年1月14日,简介,本文提供一整套编写高效可靠的 Java 代码的标准、约定和指南。它们以安全可靠的软件工程原则为基础,使代码易于理解、维护和增强。而且,通过遵循这些程序设计标准,作为一个 Java 软件开发者的生产效率会有显著提高。经验证明,若从一开始就花时间编写高质量的代码,则在软件开发阶段,对代码的修改要容易很多。最后,遵循一套通用的程序设计标准将带来更大的一致性,使软件开发团队的效率明显提高。,最根本的原则,运用常识。当找不到任何规则或指导方针,当规则明显不能适用,当所有的方法都失效的时侯:运用常识并核实这些基本原则。这条规则比其它所有规则都重要。常识
2、是必不可少的。参考SUN java SDK中的代码,这些代码、注释是比较标准的。,程序设计标准,Java 的程序设计标准很重要,原因在于它将提高开发团队各成员的代码的一致性。一致性的提高会使代码更易理解,这意味着它更易开发和维护。从而降低了应用程序的总开发成本。你必须牢记的是:你的 Java 代码在你已离开并开始另一个项目之后,会保留相当长的一端时间。因此开发过程中一个很重要的目标就是要确保在开发成员或开发团队之间的工作可以顺利交接,不必花很大的力气便能理解已编写的代码,以便继续维护和改进以前的工作。如果代码难以理解,很有可能被废弃和重写。,命名约定,我们将在整个标准中讨论命名约定,所以让我们
3、先讨论几个基本点,命名约定-使用可以准确说明变量/字段/类的完整的英文描述符,例如,采用类似 firstName,grandTotal 或 CorporateCustomer 这样的名字。虽然象 x1,y1 或 fn 这样的名字很简短,输入起来容易,但是我们难以知道它们代表什么、结果是什么含义,因而使代码难以理解、维护和改进。,命名约定-采用该领域的术语,如果用户称他们的“客户”(clients)为“顾客”(customers),那么就采用术语 Customer 来命名这个类,而不用 Client。许多程序开发者会犯的一个错误是,不去使用工业或领域里已经存在着很完美的术语时,却生造出一些普通词
4、汇。,命名约定-采用大小写混合,提高名字的可读性,一般应该采用小写字母,但是类和接口的名字的首字母,以及任何中间单词的首字母应该大写,命名约定-尽量少用缩写,但如果一定要使用,就要谨慎地使用,这意味着应该保留一个标准缩写的列表,明智地从中选取,并且在使用时保持一致。例如,想对单词“number”采用缩写,那么可从 nbr,no 或者 num 中选取一个,说明一下采用了哪一个(具体是哪个倒无所谓),并且只使用这一种形式。,命名约定-避免使用长名字,虽然 PhysicalOrVirtualProductOrService 看起来似乎是个不错的类名,但是这个名字太长了,应该考虑重新给它起个短一点的名
5、字,比如象 Offering。,命名约定-避免使用相似或者仅在大小写上有区别的名字,例如,不应同时使用变量名 persistentObject 和 persistentObjects,以及 anSqlDatabase 和 anSQLDatabase。,注释约定,注释应该增加代码的清晰度 避免使用装饰性内容,也就是说,不要使用象广告横幅那样的注释语句 保持注释的简洁 先写注释,后写代码 注释信息不仅要包括代码的功能,还应给出原因,成员函数标准,命名成员函数 成员函数的命名应采用完整的英文描述符,大小写混合使用:所有中间单词的第一个字母大写。成员函数名称的第一个单词常常采用一个有强烈动作色彩的动词
6、。示例:openAccount()printMailingLabel()save()delete()这种约定常常使人一看到成员函数的名称就能判断它的功能。虽然这种约定要使开发者多做一些输入的工作,因为函数名常常较长,但是回报是提高代码的可理解性。,命名存取成员函数,获取函数获取函数作为一个成员函数,返回一个字段的值。除了布尔字段之外,应采用 get 作为字段的前缀;布尔字段采用 is 作为前缀。示例:getFirstName()getAccountNumber()isPersistent()isAtEnd()遵循这个命名约定,显然,成员函数将返回对象的字段,布尔型的获取函数将返回布尔值“真”或
7、者“假”。这个标准的另一个优点是:它遵循 beans development kit(BDK)对获取成员函数采用的命名约定 DES97。它的一个主要的缺点是 get 是多余的,需要额外的录入工作。,设置函数,设置函数,也叫变值函数,是可以修改一个字段值的成员函数,。无论何种字段类型,都要在字段名的前面加上 set 前缀。示例:setFirstName(String aName)setAccountNumber(int anAccountNumber)setReasonableGoals(Vector newGoals)setPersistent(boolean isPersistent)set
8、AtEnd(boolean isAtEnd)按照这种命名约定,显然是一个成员函数设定一个对象的字段值。这个标准的另一个优点是:它遵循 beans development kit(BDK)对设置函数采用的命名约定 DES97。,命名构造函数,构造函数是在一个对象初次生成时,完成所有必需的初始化的成员函数。构造函数与它所属类的名字总是相同的。例如,类 Customer 的构造函数是 Customer()。注意大小写一致。示例:Customer()SavingsAccount()PersistenceBroker()这个命名约定由 Sun 公司设定,必须严格遵守。,成员函数的可见性,良好的程序设计应
9、该尽可能减小类与类之间耦合,所遵循的经验法则是:尽量限制成员函数的可见性。如果成员函数没必要公有(public),就定义为保护(protected);没必要保护(protected),就定义为私有(private)。可见性说明正确用法public公有成员函数可被任何其它对象和类的成员函数调用。当该成员函数必须被该函数所在的层次结构之外的其他对象和类在访问时。protected被保护的成员函数可被它所在的类或该类的子类的任何成员函数调用。当该成员函数提供的行为被它所在类的层次结构内部而非外部需要时。private私有成员函数只可以被该类所在的其它成员函数调用,该类的子类不可以调用。当该成员函数所
10、提供的行为明确针对定义它的类时。私有成员函数常常是重新分配要素的结果。重新分配要素又叫“重组”,指类内其它成员函数封装某一个特定行为的做法。,注释成员函数,如何注释一个成员函数常常成为判断函数是否可被理解,进而可维护和可扩展的决定性因素。,成员函数的函数头,每一个 Java 成员函数都应包含某种称之为“成员函数文档”的函数头。这些函数头在源代码的前面,用来记录所有重要的有助于理解函数的信息。这些信息包含但不仅仅局限于以下内容:成员函数做什么以及它为什么做这个 哪些参数必须传递给一个成员函数 成员函数返回什么 已知的问题。成员函数中的任何突出的问题都应说明,以便让其他程序开发者了解该成员函数的弱
11、点和难点。如果在一个类的多个成员函数中都存在着同样的问题,那么这个问题应该写在类的说明里。,成员函数的函数头,任何由某个成员函数抛出的异常。应说明成员函数抛出的所有异常,以便使其他程序员明白他们的代码应该捕获些什么。在(第 1.4.2节“快速浏览 javadoc”)中讨论的 javadoc exception 标识便用于此目的。可见性决策。如果你觉得你对于一个成员函数可见性的选择会遭到别人的质疑,例如可能你将一个成员函数设为公共的,但是却没有任何对象调用该成员函数,那么应说明你的决定。这将帮助其他开发者了解你的想法,使他们不必浪费时间操心考虑你为什么要选择一种有疑问的东西。,成员函数的函数头,
12、仅当注释增加代码的清晰度时,才应加上注释 对于每个成员函数,并非要说明以上所有部分,因为对于每一个成员函数来说,并不是以上所有的部分都适用。但是,对于所写的每个成员函数要说明以上的部分内容。,内部注释,除成员函数注释以外,在成员函数内部还需加上注释语句来说明你的工作。目的是使成员函数更易理解、维护和增强。内部注释应采用两种方式:C 语言风格的注释(/*和*/)和单行注释(/)。正如上述所讨论的,应认真考虑给代码的业务逻辑采用一种风格的注释,给要注释掉的无用代码采用另外一种风格的注释。建议对业务逻辑采用单行注释,因为它可用于整行注释和行末注释。采用 C 语言风格的注释语句去掉无用的代码,因为这样
13、仅用一个语句就可以容易地去掉几行代码,内部注释,在函数内,一定要说明:控制结构。说明每个控制结构,例如比较语句和循环。你无须读完整个控制结构内的代码才判断它的功能,而仅需看看紧靠它之前的一到两行注释即可。代码做了些什么以及为什么这样做。通常你常能看懂一段代码做了什么,但对于那些不明显的代码,你很少能判断出它为什么要那样做。例如,看完一行代码,你很容易地就可以断定它是在定单总额上打了 5%的折扣。这很容易。不容易的是为什么要打这个折扣。显然,肯定有一条商业法则说应打折扣,那么在代码中至少应该提到那条商业法则,这样才能使其他开发者理解你的代码为什么会是这样。局部变量。虽然我们在第 4 章将仔细讨论
14、这一点,在一个成员函数内定义的每一个局部变量都应在它代码的所在行声明,并且应采用一个行内注释说明它的用法。难或复杂的代码。若发现不能或者没有时间重写代码,那么应将成员函数中的复杂代码详细地注释出来。一般性的经验法则是,如果代码并非显而易见的,则应说明。处理顺序。如果代码中有的语句必须在一个特定的顺序下执行,则应保证将这一点注释出来 AMB98。没有比下面更糟糕的事了:你对一段代码做一点简单的改动,却发现它不工作,于是花了几个小时查找问题,最后发现原来是搞错了代码的执行顺序。,编写清晰整洁的代码的技巧,给代码加上注释 给代码分段 使用空白 遵循 30 秒条规则 说明消息发送的顺序 写短小单独的命
15、令行,让代码分段/缩进,一种提高代码可读性的方法是给代码分段,换句话说,就是在代码块内让代码缩进。所有在括号 和 之内的代码,构成一个块。基本思想是,块内的代码都应统一地缩进去一个单位。Java 的约定似乎是开括号放在块的所有者所在行的后面,闭括号应缩进一级。在 LAF97 指出的很重要的一点是,你所在的机构应选取一个缩进风格并始终使用这种风格。采用与你的 Java 开发环境所生成的代码一样的缩进风格。在代码中使用空白。在 Java 代码中加入几个空行,也叫空白,将代码分为一些小的、容易理解的部分,可以使它更加可读。VIS96 建议采用一个空行来分隔代码的逻辑组,例如控制结构,采用两个空行来分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 编码 规范 培训

链接地址:https://www.31ppt.com/p-5374373.html