Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
W
wiki-java
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • 老徐
  • wiki-java
  • Wiki
  • java code specification

Last edited by 老徐 Jun 13, 2016
Page history
This is an old version of this page. You can view the most recent version or browse the history.

java code specification

1 简介

  对于软件开发遵循统一的规范,有利于增强代码的可读性,同时防范错误,更好的发挥所使用的语言的优点,提高工作效率。所以我们制定此编程规范,指导公司的编码活动。本规范适用于公司各个使用Java作为开发语言的项目,作为源程序编写的规范,必须遵守。使用其他语言所编写的程序,比如Perl,在不和所使用的语言冲突的情况下,可以参考本规范的要求来编写源程序。

  参考资料

文档名称 作者 发布日期
《Rational Unified Process 2000》 Rational Software Corporation
《C++编程规范》 摩托罗拉中国公司
《高质量C语言编程》 林锐
《Java编程规范》 Sun

2 文件和目录

2.1 文件使用统一而且通用的后缀名

  • java程序的源文件: .java
  • 二进制文件: .class
  • AspectJ源文件: .aj

2.2 文件名要清晰、精炼、避免冲突

  可以用公共前缀对文件分组,但是要防止名字过长和冗余信息过多。在一个项目中,遵循统一的文件名命名规则。

2.3 文件/目录名字字符集选择

  • 只能使用以下字符集:[A-Za-z0-9_-]
  • 包名只能用小写字符、数字和“.”。
  • 类名第一个字符必须大写。

2.4 单个的文件建议不超过1000行

  这项不作为强制条件执行,但一个类超过1000行,很有可能这个类的内聚性有问题。

2.5 单个的函数建议不超过100行,但一定不要超过200行

3 文件组织

  每个Java源文件都包含一个单一的公共类或接口。若私有类和接口与一个公共类相关联,可以将它们和公共类放入同一个源文件(不建议)。公共类必须是这个文件中的第一个类或接口。 Java源文件还遵循以下规则:

  • 文件头注释
  • 包和引入语句
  • 类和接口声明

3.1 文件头注释

  参见注释里的文件头注释。

3.2 包和引入语句

  在多数Java源文件中,第一个非注释行是包语句。在它之后可以跟引入语句。例如:

package java.awt; 
import java.awt.peer.CanvasPeer;

3.3 类和接口说明

  类/接口申明包括以下几部分:

  • 1. 类/接口文档注释
  • 2. 类或接口的声明
  • 3. 类/接口实现的注释(该注释应包含任何有关整个类或接口的信息,而这些信息又不适合)
  • 4. 类的(静态)变量
  • 5. 实例变量
  • 6. 构造器
  • 7. 方法

3.4 变量申明的次序

  变量申明的次序如下:

  • 1. 先静态后实例变量
  • 2. 先public后protected再private

4 排版

4.1 缩进

  4个空格作为缩进排版的一个单位,缩进也可以使用TAB键。

4.2 在程序适当的地方加入空行

  在以下地方应该是用空行分开:

  • 1. 方法之间应该用空行分开;
  • 2. 一组局部变量声明和代码之间用空行分开;
  • 3. 用空行将代码按照逻辑片断划分;
  • 4. 除非方法非常简单(如只有一两条语句),否则方法返回语句和其他语句用空行分开;
  • 5. 每个类声明之后应该加入空行同其他代码分开;

4.3 换行

  每一行不要超过120个字符,当一个表达式无法容纳在一行内时,可以依据如下规则分行书写:

  • 1. 在一个逗号后面断开
  • 2. 在一个操作符前面断开
  • 3. 宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开
  • 4. 新的一行应该与上一行同一级别表达式的开头处对齐
  • 5. 如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进4个空格。
示例

4.4 一行只写一条语句

4.5 if for do while等语句自占一行,其后无论执行语句多长,都应该使用{}

4.6 右大括号}要单独占一行,左大括号不作结强制规定,但在单个文件中要统一

4.7 代码行之间应该留有适当的空格

5 命名规范

5.1 命名基本规范

5.2 类名采用每个单词首字母大写的方式

5.3 包的命名格式采用utn.xxx开头

5.4 常量、静态变量名采用全大写的方式,每个单词间用下划线分隔

5.5 变量名和方法名第一个单词的首字母小写,其余每个单词的首字母大写,首字母以外的字母全部小写

6 注释

6.1 确保注释是完善你的代码而不是重复它

6.2 用中文或者英文注释代码

6.3 注释用词要精确,不能有二义性

6.4 注释中的术语要通用

6.5 注释应该和代码同步更新

6.6 禁止使用行尾注释

6.7 注释不要嵌套

6.8 使用文档注释

6.9 文件头注释

6.10 方法注释

6.11 类注释

6.12 方法或者类的内部注释

6.13 代码修改必须增加注释

7 表达式

7.1 如果表达式中的运算符较多,使用括号确定运算顺序

7.2 避免大表达式中使用赋值语句

7.3 避免数学表达式和程序表达式混淆

7.4 在条件表达式中常量建议书写在前面

8 常用语句

8.1 if语句

8.2 循环语句

8.3 switch语句

9 方法

9.1 避免方法参数过多

9.2 建议方法只有唯一的出口

9.3 如果返回不是void,必须提供返回值

9.4 重复使用的代码用方法替代

10 类

10.1 提高类内的聚合度

10.2 降低类之间的耦合度

10.3 努力使类的接口少而完备

11 其它

11.1 无论什么时候,为你的正式程序编写单元测试代码

11.2 建立项目内部编码规范

11.3 代码中使用到的算法或常量是根据某个规范而实现的,必须用注释说明

11.4 禁止使用IDE的格式化功能格式化已有的代码

Clone repository
  • git configuration and simple use
  • Home
  • java code specification
  • maven environment configuration
  • shuidi js develope
  • ucs_project environment configuration