【ACCESS精品源码栏目提醒】:网学会员--在 ACCESS精品源码编辑为广大网友搜集整理了:Java编码规范(中文版) - 其它资料绩等信息,祝愿广大网友取得需要的信息,参考学习。
1. 一 般 规 则 编写能够良好执行的软件是重要的,很多其它因素也让职业的Java程序开发者所关切。
所有好的软件都能良好的执行。
但是一个优秀的软件,应该是用可预见的,鲁棒的,可维护的,可支持的,可扩展的风格来编写。
1、坚持原有的风格 当我们修改已有软件时,你的改动应该遵循原有的编码风格。
不要在修改中引入一种新的编码风格,并且不要试图仅仅为了适应新的风格而去重写原有的软件。
在一个源文件中使用两种不同的风格所产生的代码是很难阅读和理解的。
仅仅为改变风格而去重写原有代码,将会导致代价昂贵的,却是可避免的错误的引入。
2、坚持最小惊讶原则 最小惊讶原则建议你应该避免做让你的软件用户感到惊讶的事情。
这意味着你的软件所展示的交互和行为,应该是可预测的和前后一致的。
如果不是这样,那么你的文档一定要清晰地标识,并且证明每一个独特的使用模式或行为模式是合理的。
为了使用户在使用你的软件时遇到的意外最少,你应该在你的Java程序的设计、实现以及文档中强调以下几个特性:page 1 简单性 构建简单类和简单方法。
决定你需要做多少工作,就能满足用户的需要。
清晰性 确保每一个类、接口、方法、变量和对象都有明确的目的。
阐明在什么地方,什么时候,为什么以及怎样使用它们。
完整性 提供每一个合理用户可能希望的最小功能。
创建完整的文档来记录所有的特征和功能。
一致性 相似的实体在外观和行为上应该是相同的;不同的实体在外观和行为上应该是不同的。
无论何时,只要可能就要创建并应用这些标准。
鲁棒性 提供可预见的记录行为来响应错误和异常.不要隐瞒错误,更不要迫使用户来发现错误。
3、坚持在第一时间把它做好 把这些规则应用到你所编写的任何代码中,而不仅仅是产品级的代码。
经常会有一段原型的或实验的代码进入你最终的产品,所以你要能预见这种事是可能发生的。
即使你的代码不会成为产品,其他人仍可能去读它。
任何看到你的代码的人,都会因为你能够从一开始就始终如一地应用这些规则而欣赏你的专业水平和远见。
page 2 4、记录任何与编码规范相违背的地方 没有完美的标准,也没有普遍应用的标准。
有时你会发现你会处在不得不违背规范的处境中。
在你决定忽略一个规则之前,你应该首先确信你是知道这个规则为什么存在的,知道如果不应用这个规则会有什么样的后果。
如果你决定你必须违背一个规则,那么你要记录你必须这么做的原因。
page 3 (柳学铮译) 2. 格 式 编 排 的 约 定5.缩进嵌套代码 增强代码可读性的一种方法是将独立的语句分组为块语句,并且统一缩进每块程序的内容,用以从环境代码中分离其内容。
如果你用 Java 的开发环境开发代码,那么就用开发环境中产生的缩进风格编写。
如果你用手工编写代码,则用 2 个空格来确保程序的可读性,并且这并没有占多大空间: class MyClass …void function int arg ……if arg lt 0 ………for int index 0 index lt arg index ………//… ……… …… … 除了要缩进块语句的内容,你还应该缩进后面加了标记的语句,使标记更容易被注意到: void function int arg …loop: ……for int index 0 index lt arg index ………switch index page 5 ……case 0 ………//… …………break loop // exit the for statement ………default …………//… …………break // exit the switch statement ……… … 将每块程序开始的括号“”设置在引入程序块的那一行语句的最后一个字符的位置上。
将每个程序块的结束括号“”单独放在一行,同引入程序块语句的那一行的第一个字符排成一列。
下面的例子说明了这个规则是怎样应用于各种各样的 Java 定义和控制结构。
Class definitions: public class MyClass … Inner class definitions: public class OuterClass … class InnerClass … … Method definitions: void method int j … Static blocks: static … page 6 For-loop statements: for int i 0 i lt j i … If and else statements: if j lt 0 … else if j gt 0 … else … Trycatchand finally blocks:try … catch Exception e … finally …Switch statements: switch value case 0: … break default: … break Anonymous inner classes: button.addActionListener new ActionEventListener page 7 public void actionPerformed … While statements: while k lt j … Do-while statements: do … while k lt j★ 如果你正在管理一个开发组,不要让他们成为选择各自缩进数量和风格的个别开发者。
为团队制定一个标准的缩进策略。
并且确保每个人都遵从这个标准。
尽管你们的团队更喜欢三个甚至是四个空格,但是我们推荐的两个空格是当今最普遍的标准。
6.截断长行 现代的基于 windows 的程序编辑器能够容易的通过水平浏览处理长的源代码行。
然而一个打印机必须截尾,回行或是在超过他的最大可打印行宽的分散的打印纸上打印。
为了打印时确保你的源代码仍然可读,你应该将你的源代码的长度限定在你的打印环境支持的最大宽度内,典型的是 80 或 132 字符。
首先,如果结果是超过你的最大允许行长的一行语句,则不要将多重语句表达式放在一个单行。
如果表达式放在一行,如:page 8 (赵智译) double x Math.randomdouble y Math.random//Too Long 那么就引入一个新行来把这两条语句表达式放在不同的行上。
double x Math.random double y Math.random 第二,如果当一行因为包含一个复杂的表达式而太长时: double length Math.sqrtMath.powMath.random2.0 Math.random2.0//Too Long 那么就把这个表达式拆分成几个小一些的子表达式。
使用单独的行,来存放由每个子表达式的等价转换,而成的临时变量所产生的结果: double xSquared Math.powMath.random20 double ySquared Math.powMath.random20 double length Math.sqrtxSquaredySquared 最后,如果一个长行不能使用前面的两条规则来缩短,那么就用下面的规则来分开、回行、和缩进: 第一步 如果一行中的高层表达式包含一个或多个逗号: double length Math.sqrtMath.powx2.0Math.powy2.0//Too Long 那么在每个逗号后引入一个行中断。
将每一个后面跟随着逗号的表达式,同逗号后面的表达式的第一个字符对齐: double length Math.sqrtMath.powx2.0 Math.powy2.0 第二步 如果一行中的高层表达式中不包含逗号: class MyClass private int field page 9 … Boolean equalsobject obj return this obj obj instanceof MyClass ampamp this.field obj.field// Too Long … 那么在最低优先级的操作符前引入一个行中断,或者如果存在多个具有同样低优先级的操作符时,在每个这样的操作符之前引入一个行中断。
Class MyClass private int field page 9 … Boolean equals Object obj return this obj this.obj instanceof MyClass ampamp this.field obj.field … 第三步 不断按照第一步和第二步所要求的那样进行分割,直到由原始语句表达式,所产生的每个行,都小于所允许的最大长度。
7.包含空白的空间 空白空间是一页中看不到字符的地方。
由于有
上一篇:
使用BusyBox制作linux根文件系统
下一篇:
bc80e7a0-d1f2-4595-b21d-01a76798e87a