Skip to content

Latest commit

 

History

History
149 lines (101 loc) · 5.7 KB

codestyle.md

File metadata and controls

149 lines (101 loc) · 5.7 KB

代码风格

  • 缩进

    【强制】 缩进采用4个空格,禁止使用tab字符

    说明:如果使用tab缩进,必须设置1个tab为4个空格。IDEA设置tab为4个空格时,请勿勾选Use tab character;而在eclipse中,必须勾选insert spaces for tabs。

    正例:(涉及1-5点)
    public static void main(String args[]) {
    	//缩进4个空格
    	String say = "hello";
    	//运算符的左右必须有一个空格
    	int flag = 0;
    	//关键词if与括号之间必须有一个空格,括号内的f与左括号,0与右括号不需要空格
    	if (flag == 0) {
    		System.out.println(say);
    	}
    	//左大括号前加空格且不换行;左大括号后换行
    	if (flag == 1) {
    		System.out.println("world");
    		//右大括号前换行,右大括号后有else,不用换行
    	} else {
    		System.out.println("ok");
    		//在右大括号后直接结束,则必须换行
    	}
    }
    
  • 变量命名

    1.【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。

    反例: _name / __name / $Object / name_ / name$ / Object$
    

    2.【强制】 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。

    说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。 注意,即使纯拼音命名方式也要避免采用。

    反例: DaZhePromotion [打折] / getPingfenByName()  [评分] / int某变量 = 3
    正例: alibaba / taobao / youku / hangzhou等国际通用的名称,可视同英文。
    
  • 每行最多字符数

【强制】 单行字符数限制不超过 120个,超出需要换行,换行时遵循如下原则:

  • 第二行相对第一行缩进 4个空格,从第三行开始,不再继续缩进,参考示例。
  • 运算符与下文一起换行。
  • 方法调用的点符号与下文一起换行。
  • 在多个参数超长,逗号后进行换行。
  • 在括号前不要换行,见反例。
正例:
StringBuffer sb = new StringBuffer();
//超过120个字符的情况下,换行缩进4个空格,并且方法前的点符号一起换行
sb.append("zi").append("xin")...
	.append("huang")...
	.append("huang")...
	.append("huang");
反例:
StringBuffer sb = new StringBuffer();
//超过120个字符的情况下,不要在括号前换行
sb.append("zi").append("xin")...append
	("huang");
//参数很多的方法调用可能超过120个字符,不要在逗号前换行
method(args1, args2, args3, ...
	, argsX);
  • 函数最大行数

    【强制】 以80、200、500为规定界限,超过80行的函数即为超大函数,即进行拆分,规定最大行数为80-200 行,拆分时遵循如下原则:

    • 每一个代码块都可以封装为一个函数
    • 每一个循环体都可以封装为一个函数
    • 每一个条件体都可以封装为一个函数
  • 函数、类命名

    1.【强制】 类名使用UpperCamelCase风格,必须遵从驼峰形式,但以下情形例外:(领域模型的相关命名)DO / BO / DTO / VO等。

    正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal /   TaPromotion
    反例:macroPolo / UserDo / XMLService / TCPUDPDeal /   TAPromotion
    

    2.【强制】 方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式。

    正例: localValue / getHttpMessage() /  inputUserId
    

    3.【强制】 抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾。

  • 常量

    【强制】 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。

    正例: MAX_STOCK_COUNT
    反例: MAX_COUNT
    
  • 空行规则

    【推荐】 方法体内的执行语句组、变量的定义语句组、不同的业务逻辑之间或者不同的语义之间插入一个空行。相同业务逻辑和语义之间不需要插入空行。

    说明:没有必要插入多行空格进行隔开。

  • 注释规则

    1.【强制】 类、类属性、类方法的注释必须使用Javadoc规范,使用/*内容/格式,不得使用//xxx方式。

    说明:在IDE编辑窗口中,Javadoc方式会提示相关注释,生成Javadoc可以正确输出相应注释;在IDE中,工程调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高阅读效率。

    2.【强制】 所有的抽象方法(包括接口中的方法)必须要用Javadoc注释、除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。

    说明:对子类的实现要求,或者调用注意事项,请一并说明。

    3.【强制】 所有的类都必须添加创建者信息。

    4.【强制】 方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释,注意与代码对齐。

    5.【强制】 所有的枚举类型字段必须要有注释,说明每个数据项的用途。

  • 操作符前后空格

    【强制】 任何运算符左右必须加一个空格。

    说明:运算符包括赋值运算符=、逻辑运算符&&、加减乘除符号、三目运行符等。

  • 其他规则

    1.【强制】 if/for/while/switch/do等保留字与左右括号之间都必须加空格。

    2.【强制】 左大括号后,右大括号前均换行

  • 备注

    本人代码风格谨参考《码出高效_阿里巴巴Java开发手册》、遵循个人编码习惯制定。