规定自己的Java编码规范

给自己规定了Java编码规范,编写Java代码严格按照自己规定的格式。欢迎大家指出问题。

/*
*COPYRIGHT
*/

package com.triangle23.projectabbreviationname.modulename.???.???.
##1.所有字母都是用小写,不要有特殊字符
##2.组合单词的每个部分都写全拼,连接时各个部分之间不要有特殊符号,组合单词不要超过三个,每个部分都用名词,尽量用英文,中文的话用拼音
##3.projectabbreviationname和modulename如果用中文词组由拼音首字母组成,不要超过16个字母

import java.util.Date;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;

import com.triangle23.???.ClassName;
import com.triangle23.???.ClassName.methodName;

import com.adrastos.???.ClassName.methodName;

##1.引用的顺序是Java核心包库->Java扩展包库->第三方开源类库->自己或别的公司的类库
##2.引用时做到最小引用,即只引入用到的最小范围(如只使用了某个类的某个方法,只需引入该方法即可)
##3.用空白行区分不同类别的引用

/**
*Description:
*
*
*@author [email protected]
*@version number(1.0), date
*
*Revision History:
* <who>   <when>   <what>
* ???      ???      ???
*/
public class ClassName extends FatherClassName implements InterfaceName1, InterfaceName2{
##1.类/接口名都应是名词组成,且每个单词第一个字母均为大写

	/**static CONSTENT_NAME1的注释*/
	static final int CONSTENT_NAME1 = 1;
	/**static CONSTENT_NAME1的注释*/
	static final String CONSTENT_NAME2 = "Hello World!";
	##1.常量的定义放在最前面
	##2.常量的变量名有若干有意义单词组成,每个字母全部大写,之间用"_"分割

	/**static interfaceVar1的注释*/
	public static InterfaceName interfaceVar1;
	/**static interfaceVar2的注释*/
	protected static InterfaceName[] interfaceVar2;
	/**static interfaceVar3的注释*/
	private static InterfaceName interfaceVar3;
	/**
	*static interfaceVar4的注释
	*超过两行
	*/
	public static InterfaceName interfaceVar4;
	/**
	*static interfaceVar5的注释
	*超过两行
	*/
	protected static InterfaceName[] interfaceVar5;
	/**
	*static interfaceVar6的注释
	*超过两行
	*/
	private static InterfaceName interfaceVar6;
	##1.与前一级别的变量组之间留有一个空白行
	##2.多个接口声明之间不留有空白行
	##3.变量名称见通用规则
	##4.变量定义的顺序是安可见性由大到小排列,由单个变量到数组变量
	##5.调用类中静态接口变量需要使用ClassName.interfaceVar1,不能使用variableClassName.interfaceVar1

	/**static classVar1的注释*/
	public static ClassName classVar1;
	/**static classVar2的注释*/
	protected static ClassName[] classVar2;
	/**static classVar3的注释*/
	private static ClassName classVar3;
	/**
	*static classVar4的注释
	*超过两行
	*/
	public static ClassName classVar4;
	/**
	*static classVar5的注释
	*超过两行
	*/
	protected static ClassName[] classVar5;
	/**
	*static classVar6的注释
	*超过两行
	*/
	private static ClassName classVar6;
	##1.与之前的静态接口变量之间留有一个空白行
	##2.变量名称见通用规则
	##3.变量定义的顺序是安可见性由大到小排列,由单个变量到数组变量
	##4.多个类声明之间不留有空白行
	##5.调用类中静态类变量需要使用ClassName.classVar1,不能使用variableClassName.classVar1

	public static int variableName1; //注释
	protected static String[] variableName2; //注释
	private static long variableName3=1.0l; //注释
	##1.与前一级别的变量组之间留有一个空白行
	##2.变量名称见通用规则
	##3.变量定义的顺序是安可见性由大到小排列,由单个变量到数组变量
	##4.多个静态变量之间不留有空白行
	##5.如果只是简单的值,在声明的时候就要赋值
	##6.变量到用的时候再赋值
	##7.调用类中静态变量需要使用ClassName.variableName1,不能使用variableClassName.variableName1

	public int variableName4; //注释
	protected String[] variableName5; //注释
	private long variableName6=1.0l; //注释
	##1.与前一级别的变量组之间留有一个空白行
	##2.变量名称见通用规则
	##3.变量定义的顺序是安可见性由大到小排列,由单个变量到数组变量
	##4.多个实体变量之间不留有空白行
	##5.如果只是简单的值,在声明的时候就要赋值
	##6.变量到用的时候再赋值

	static{

	}
	##1.静态代码块
	##2.与变量之间留有一个空白行

	public ClassName(){

	}

	protected ClassName(Object object){

	}

	private ClassName(Object object, int variableName){
	super.object = object;
	this.variableName = variableName;
	}
	##1.构造函数按照可见级别进行分类,相同可见级别之间按照参数个数排序
	##2.每个构造函数之间都要留有一个空白行
	##3.当形参给类或父类的变量赋值时必须写上super或者this
	##4.类中使用自己的方法时必须用this.doMethodName(),调用父类的方法时用super.doMethodName()

	public int getVariableName6(){
		return this.variableName6;
	}

	private void setVariableName6(int variableName6){
		this.variableName6 = variableName6;
	}
	##1.是否需要get和set方法看实际需求
	##2.注意get和set方法的可见性
	##3.同一个变量的get和set顺序无所谓
	##4.注意get和set方法的名称一定是get/setVariableName6,一般使用IDE生成
	####5.get和set方法的放置位置还没有定,初定构造函数后面

	/**
	*方法说明
	*
	*@author authorName  updateDate
	*@return returnType
	*/
	public static returnType doMethodName1(){
		##方法名称的一个单词应为动词且首字母小写后面组合单词首字母大写
		int localVariableName1; //注释
		List<ClassName> localVariableName2; //注释
		String[] localVariableName3; //注释
		returnType returnTypeVariableName;
		##1.注意局部变量尽量不要和上层变量重名

		业务逻辑

		for(int i = 0; i < count; ++i){
			/**for循环条件说明*/
			int forLocalVariableName1; //注释
			.
			.
			.

			业务逻辑
		}

		for(VariableType variableType : iteratorVariableName){
			/**for循环条件说明*/
			int forLocalVariableName1; //注释
			.
			.
			.

			业务逻辑
		}

		while(booleanEquation){
			/**while条件说明*/
			int whileLocalVariableName1; //注释
			.
			.
			.

			业务逻辑
		}

		do{
			/**do while条件说明*/
			int doWhileLocalVariableName1; //注释
			.
			.
			.

			业务逻辑
		}while(booleanEquation);

		if(booleanEquation){
			/**if条件说明*/
			int ifLocalVariableName1; //注释
			.
			.
			.

			业务逻辑
		}else if(booleanEquation){
			/**else if条件说明*/
			int elseIfLocalVariableName1; //注释
			.
			.
			.

			业务逻辑
		}else{
			int elseLocalVariableName1; //注释
			.
			.
			.

			业务逻辑
		}

		switch(booleanEquation){
			case NO.1:
			/**NO.1条件说明*/
			业务逻辑
			case NO.2:
			/**NO.2条件说明*/
			业务逻辑
			break;

			.
			.
			.

			case NO.n:
			/**NO.n条件说明*/
			业务逻辑
			break;
			default:
			/**default条件说明*/
			业务逻辑
		}

		return returnTypeVariableName;
		##1.return 要和之前的业务逻辑代码之间和方法结束代码各留有一个空白行

	}
	##1.调用类中静态方法需要使用ClassName.doMethodName1(),不能使用variableClassName.doMethodName1()

	/**
	*方法说明
	*
	*@author authorName  updateDate
	*@param object  object‘s explanation
	*@return returnType
	*@throws RuntimeException Exception
	*
	*/
	protected returnType doMethodName2(Object object) throws RuntimeException, Exception{

	规则见上一个静态方法

	}

	/**
	*方法说明
	*
	*@author authorName  updateDate
	*@param object  object‘s explanation
	*@param variable  variable‘s explanation
	*@return returnType
	*
	*/
	private returnType doMethodName3(Object object, int variable){

	规则见上上个静态方法

	}
	##1.方法的按可见性由大到小排序,相同可见性可以按名称排序或者按参数个数排序,排序可以灵活
}

class ClassName extends FatherClassName implements InterfaceName1, InterfaceName2{
	规则见上个public类
}
.
.
.

#####################################################################
1.一个文件中只有一个为public的类
2.每行的代码长度不要超过70列
3.注意代码缩进
4.变量名称应短小有意义,第一个单词应为名词且首字母小写,后面组合单词部分首字母大写
5.变量名称除循环使用的控制循环的变量外,严禁使用a,b,c,i,j,k等单个字母
6.所有临时变量开头应以temp开头,并在代码审查的时候尽量去除掉
7.临时的任务用//TODO 注释,并且保证最后提交代码没有可以完成的TODO部分还保留TODO关键字
8.当booleanEquation有多个判断条件时,注意使用括号加以区分
9.可见性的范围一定要注意,不需要对类外部公布的就设置为对外不可见
10.如果类继承Serializable接口,尽量使用private static final long serialVersionUID = 1L;这个默认值
11.get和set的类的私有变量类型要使用基本类型的封装类,如Integer, Long等
#####################################################################

规定自己的Java编码规范

时间: 2024-10-26 07:53:46

规定自己的Java编码规范的相关文章

java编码规范

右括号") "与其后面的关键字之间,关键字与其后面的左括号"("或"{"之间,以及"}"与"{"之间,要以一个空格隔开:除". "外,所有二元操作符的前.后要加空格:在逗号后边加一个空格. 说明: 一个紧跟着括号的关键词应该被空格分开: 空白应该位于参数列表中逗号的后面: 所有的二元运算符,除了".",应该使用空格将之与操作数分开.一元操作符和操作数之间不应该加空格,

阿里Java编码规范

详细,全面 很不错 阿里 Java编码规范

个人整理--Java编码规范

编码规范对于开发人员来说是非常重要的,有以下几个原因: 1.一个软件的生命周期中,80%的花费在于维护 2.几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护 3.编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码 4.如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品 5.为来自不同的项目组或个人提供标准的代码格式. 6.增加易读性. 在不用Java两年多后因工作需要我又要转入Java开发,为此我整理出下面的编码规范,

Java 编码规范

参考Sun公司的Java编码规范,半翻译半理解. 使用空行分割代码块,并给代码块添加注释: 一个文件一个类(或者接口),将私有类放在引用该类的公用类的后面: 源文件构成:文件注释.package/import.类或接口的声明: /* * Class name * Version info * Copyright notice * Program description */ 使用4个空格作为缩进,避免使用Tab键(Tab键还没有统一的标准,有的是4个空格,有的是8个空格): 控制每行代码的长度,

java编码规范及优化总结

一.java概述 1991 年Sun公司的James Gosling(詹姆斯·高斯林)等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器.1994年将Oak语言更名为Java. 二.Java的三种技术架构 J2EE:Java PlatformEnterprise Edition,开发企业环境下的应用程序,主要针对web程序开发: J2SE:Java PlatformStandard Edition,完成桌面应用程序的开发,是其它两者的基础: J2ME:Jav

oracle Java编码规范

最近看java编码规范,借鉴petercao的原文翻译并做了改动,还有没有改完的地方,欢迎指正. 原文地址如下 http://www.cnblogs.com/bluestorm/archive/2012/10/04/2711540.html Oracle官方Java编码规范(英文版) http://www.oracle.com/technetwork/java/codeconvtoc-136057.html 1 介绍(Introduction) 1.1 为什么要有编码规范(Why Have Co

标准的Java编码规范手册

编码规范体现出一个开发者的基本素质,良好的编码规范可以提高团队编码的效率,避免很多不必要的问题.今天分享一个标准的Java编码规范给大家,希望对于大家今后的开发工作带来帮助. 编码规范的意义 在项目开发维护中,编码规范作为开发规范的一个组成部分,是十分重要和必须的,它不仅仅是为了提高开发效率,也有利于降低后期维护开发的成本.编码规范的根本目的就是要让不仅代码可以一目了然,也可以很容易的理解开发人员所编写的代码程的用途和意义.由此,用来减少项目中因为开发维护人员的更替或由于长时间不维护造成的记忆模

CheckStyle,定制自己的Java编码规范

前言 一.CheckStyle简介 Checkstyle是一个开发工具,可以帮助程序员编写遵循编码标准的Java代码.它自动化了检查Java代码的过程,以避免人类完成这一枯燥(但很重要)的任务.这使得它非常适合那些希望实施编码标准的项目.Checkstyle是高度可配置的,可以支持几乎任何编码标准,默认内置Sun Java编码规范和Google Java编码规范两套配置文件,我们也可以根据自己的需要配置自己的规范. 二.CheckStyle的安装 与其它的插件一样,CheckStyle插件也提供

Java 编码规范(转)

本文转自:http://www.javaranger.com/archives/390 文章总结出了java编码过程中的一些规范,以便参考. 1.合理组织代码层次,分层清晰:controller.logic.dao.对第三方接口(包括公司接口)的调用:各层要继承基类或实现接口 2.先定义方法原型,再实现方法体 3.理想的方法,是不可拆分的.原子的一个逻辑实现,具有一个明确的职责 4.方法体不超过70行,类体不超过500行 5.类名称.变量名称.方法名称,遵循简单明确,知名见义原则.建议不带数字,