nullnull王大刚*null一个软件的生命周期中,80%的花费在于维护
几乎没有任何一个软件,在其整个生命同期中,均由最初的开发人员来维护
编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新代码
如果你将源码作为产品发布,就需要确认它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品为了执行规范,每个软件开发人员必须一致遵守编码规范。每个人!!!
*null本文档反映的是Sun Microsystem公司,Java语言规范中的编码
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
部分。主要贡献者包括:Peter King,Patrick Naughton,Mike DeMoney,Jonni Kanerva,Kathy Walrath以及Scott Hommel。*null统一使用eclipse作为开发工具,避免不同的开发工具
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
不一样引起的编码混乱*null文件名称第一个字母大写,每个单词的第一个字母大写。
代码行不要超过2000行.
开头要有注释
/ *
* Classname
*
* Version information
*
* Date
*
* Copyright notice
* /
*null一个制
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
符作为缩进排版的一个单位
尽量避免一行长度超过80个字符
换行。当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:
在一个逗号后面断开
在一个操作符前面断开
选择较高级别的(higher-level)的断开
新行应该与上一行同一级别表达式的开头处对齐
如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格*null*someMethod(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);
var = someMethod1(Expression1,
someMethod2(longExpression2,
longExpression3));
longName1 = longName2 * (longName3 + longName4- longNeme5)
+ 4 * longName6);
private static synchronized horkingLongMethodName(int anArg,
Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
……
}
if ((condition1 && condition2)
|| (condition3 && condition4)
|| !(condition5 && condition6)) {
doSomethingAboutIt();
}
nullJava程序有两类注释:实现注释(implementation comments)和文档注释(document comments)。
实现注释是那些在C++中见过的,使用/*…*/和//界定的注释。文档注释(被称为“doc comments”)是Java独有的,并由/**…*/界定。文档注释可以通过javadoc工具转换成HTML文件
实现注释用以注释代码或或者实现细节。文档注释从实现自由(implemtentation-free)的角度描述代码的规范。它可以被那些手头没有源码的开发人员读懂
注意:频繁的注释有时反映出代码的低质量。当你觉得被迫要加注释的时候,考虑一下重写代码使其更清晰。
*null块注释通常用于提供对文件,
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
,数据结构和算法的描述。块注释被置于每个文件的开始处以及每个方法之前
块注释之首应该有一个空行,用于把块注释和代码分割开来,比如:
/ *
* Here is a block comment.
*/*null短注释可以显示一行内,并与其后的代码具有一样的缩进层级。如果一个注释不能在一行内写完,就用块注释。
if (condition) {
/ * Handle the condition. */
……
}
*null极短的注释可以与它们所要描述的代码位于同一行,但是应该有足够的空白来分开代码和注释。若有多个短注释出现于大段代码中,它们应该具有相同的缩进。
if (a ==2) {
return TRUE; / * special case */
} else {
return isPrime(a); / * works only for odd a */
}
*null注释界定符“//”,可以注释掉整行或者一行中的一部分。它一般不用于连续多行的注释文本;
if(foo > 1) {
// do a double-filp
……
}
else {
return false;
}*null文档注释描述Java的类、接口、构造器、方法,以及字段(field)。每个文档注释都会被置于注释界定符/ **…*/之中,一个注释对应一个类、接口或成员。该注释应位于声明之前:
/ **
* The Example class provides …
*/
public class Example { …*null一行一个声明
方法与方法之间 以空行分隔
int level; // indentation level
int size; // size of table
Sample(int i, int j) {
ivar1 = i;
ivar2 = j;
}
int emptyMethod() {}
…
}*null每行至多包含一条语句
argv++; argc--; // 避免这样使用
带返回值的return语句不使用小括号“()”,除非它们以某种方式使返回值更显见。比如:
return myDisk.size();
return (size ? size ; defaultSize);*null空行将逻辑相关的代码段分隔开,以提高可读性。不同代码块之间应该有空行隔开。
紧跟着括号的关键语句应该被空格分开。比如while (true) {
空格不应该置于方法名与其左括号之间,这将有助于区分关键字和方法调用
空白应该位于参数列表中逗号的后面
所有的二元运算符,除了“.”,应该使用空格将之与操作数分开。比如:a += c + d;
for语句中的表达式应该被空格分开。比如:for (expr1; expr2; expr3)
强制转型后应该跟一个空格。myMethod((byte) aNum, (Object) x);*null命名要做到见名知意
使用完整单词,避免缩写词
包名全部小写
类名是一个名词,采用大小写混合方式,每个单词的首字母大写
方法名是一个动词,采用大小写混合方式,第一个单词的首字母小写,其后单词的首字母大写
除了变量名外,所有实例,包括类,类常量,均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的
实例变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一个临时性变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整形;c,d,e,它们一般用于字符型
大小写规则和变量名相似,除了前面需要一个下划线隔开*null提供对实例以及类变量的访问控制,若没有足够的理由,不要把实例或类类变量声明为public
避免用一个对象访问一个类的静态变量和方法。应该用类名替代
位于for循环中作为计数器值的数字常量,除了-1,0和1之外,不应被直接写入代码
避免在一个语句中给多个变量赋相同的值
不要使用内嵌(embedded)赋值运算符试图提高运行时效率。比如:d = (a = b +c) + r; *null设法让你的程序结构符合目的。例如:
if (booleanException) {
return true;
else {
return false;
}
应该代之以如下方法:return booleanException;
类似地:
if (condition) {
return x;
}
return y;
应该写为:return (condition ? x : y);*null下面的例子,展示了如何合理布局一个包含单一公共类的Java源程序。接口的布局与其相似。更多信息参见“类和接口”以及“文档注释”*null* /*
* @(#)Blah.java 1.82 99/03/18
*
* Copyright (c) 1994-199 Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, California, 94303,
* U.S.A
* All rights reserved.
*
* This software is the confidential and proprietary
* information of Sun Microsystems, Inc. (“Confidential
* Information”). You shall not disclose such Confidential
* Information and shall use it only in accordance with the
* terms of the license agreement you entered into with Sun.
*/
package java.blah;
import java.blah.blahdy.BlahBlah;
null* /**
* Class description goes here.
*
* @verison 1.82 18 Mar 1999
* @author Firsname Lastname
*/
public class Blah extends SomeClass {
/* A class implementation comment can go here. */
/** class Var1 documentation comment */
public static int classVar1;
/**
* classVar2 documentation comment that happen to be
* more than one line long
*/
private static Object classVar2;
/** instanceVar2 documentation comment */
public Object instanceVar1;
null*
/** instanceVar3 documentation comment */
private Object[] instanceVar3;
/**
* …constructor Blah documentation comment…
*/
public Blah() {
//…implementation goes here…
}
/**
* …method doSomething documentation comment…
*/
public void doSomething() {
//…implementation goes here…
}null*
/**
* …method doSomethingElse documentation
* comment…
* @param someParam description
*/
public void doSomethingElse(Object someParam) {
//…implementation goes here…
}
}