1 / 77
文档名称:

Java编码规范(中文版).doc

格式:doc   大小:181KB   页数:77页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Java编码规范(中文版).doc

上传人:xgs758698 2019/5/28 文件大小:181 KB

下载得到文件列表

Java编码规范(中文版).doc

相关文档

文档介绍

文档介绍:编写能够良好执行的软件是重要的,很多其它因素也让职业的Java程序开发者所关切。所有好的软件都能良好的执行。但是一个优秀的软件,应该是用可预见的,鲁棒的,可维护的,可支持的,可扩展的风格来编写。1、坚持原有的风格当我们修改已有软件时,你的改动应该遵循原有的编码风格。不要在修改中引入一种新的编码风格,并且不要试图仅仅为了适应新的风格而去重写原有的软件。在一个源文件中使用两种不同的风格所产生的代码是很难阅读和理解的。仅仅为改变风格而去重写原有代码,将会导致代价昂贵的,却是可避免的错误的引入。2、坚持最小惊讶原则最小惊讶原则建议你应该避免做让你的软件用户感到惊讶的事情。这意味着你的软件所展示的交互和行为,应该是可预测的和前后一致的。如果不是这样,那么你的文档一定要清晰地标识,并且证明每一个独特的使用模式或行为模式是合理的。为了使用户在使用你的软件时遇到的意外最少,你应该在你的Java程序的设计、实现以及文档中强调以下几个特性:(page1)·简单性构建简单类和简单方法。决定你需要做多少工作,就能满足用户的需要。·清晰性确保每一个类、接口、方法、变量和对象都有明确的目的。阐明在什么地方,什么时候,为什么以及怎样使用它们。·完整性提供每一个合理用户可能希望的最小功能。创建完整的文档来记录所有的特征和功能。·一致性相似的实体在外观和行为上应该是相同的;不同的实体在外观和行为上应该是不同的。无论何时,只要可能就要创建并应用这些标准。·,更不要迫使用户来发现错误。3、坚持在第一时间把它做好把这些规则应用到你所编写的任何代码中,而不仅仅是产品级的代码。经常会有一段原型的或实验的代码进入你最终的产品,所以你要能预见这种事是可能发生的。即使你的代码不会成为产品,其他人仍可能去读它。任何看到你的代码的人,都会因为你能够从一开始就始终如一地应用这些规则而欣赏你的专业水平和远见。(page2)4、记录任何与编码规范相违背的地方没有完美的标准,也没有普遍应用的标准。有时你会发现你会处在不得不违背规范的处境中。在你决定忽略一个规则之前,你应该首先确信你是知道这个规则为什么存在的,知道如果不应用这个规则会有什么样的后果。如果你决定你必须违背一个规则,那么你要记录你必须这么做的原因。(page3)(柳学铮译),并且统一缩进每块程序的内容,用以从环境代码中分离其内容。如果你用Java的开发环境开发代码,那么就用开发环境中产生的缩进风格编写。如果你用手工编写代码,则用2个空格来确保程序的可读性,并且这并没有占多大空间:classMyClass{…voidfunction(intarg){……if(arg<0){………for(intindex=0;index<=arg;index++){………//…………}……}…}}除了要缩进块语句的内容,你还应该缩进后面加了标记的语句,使标记更容易被注意到:voidfunction(intarg){…loop:……for(intindex=0;index<=arg;index++){………switch(index){(page5)……case0;………//……………breakloop;//exittheforstatement………default;…………//……………break;//exittheswitchstatement………}…}}将每块程序开始的括号“{”设置在引入程序块的那一行语句的最后一个字符的位置上。将每个程序块的结束括号“}”单独放在一行,同引入程序块语句的那一行的第一个字符排成一列。下面的例子说明了这个规则是怎样应用于各种各样的Java定义和控制结构。Classdefinitions:lassMyClass{…}Innerclassdefinitions:lassOuterClass{…classInnerClass{…}…}Methoddefinitions:voidmethod(intj){…}Staticblocks:static{…}(page6)For-loopstatements:for(inti=0;i<=j;i++){…}Ifandelsestatements:if(j<0){…}elseif(j>0){…}else{…}Try,catch,andfinallyblocks:try{…}catch(Exceptione){…}finally{…}Switchstatements:switch(value){case0:…break;default:…break;}Anonymousinnerclasses:(