IBM GDC DL

Teambiz后台开发规范

(2012年3月9日修订版)

撰写:何杨

2012年3月9日

1. 包的命名

包名应全由小写单词组成,如com.dalpha.common.gui,com.dalpha.biz.supply

2. 接口的命名

Java接口采用统一的前缀I,如IService.java

3. 接口实现类的定义

接口实现类建议采用统一的后缀Impl,如:ServiceImpl

4. 抽象类,普通类的定义

可视化类:功能描述后加上相应的后缀。

例如:

对于对话框,功能加Dlg,如:ContractDlg

对于面板,功能加Panel,如:ContractPanel

对于按钮,功能加Btn,如:deleteBtn

对于实用工具类,功能加Util后缀,如:FileUtil

对于线程类,功能加Thread后缀,如:TimerThread

对于消息主题,功能加Listener后缀或者sender后缀,如:NegotitiaonListener

5. 常量定义

关于常量的命名方法,在JAVA代码中,无论什么时候,均提倡应用常量取代数字、固定字符串。也就是说,程序中除0,1以外,尽量不应该出现其他数字。常量可以集中在程序开始部分定义或者更宽的作用域内,名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线“_”来分割这些单词。

举例:定义最大时间常量,如下:

Public static final String Max_Time;

或者Public static final String MAX_TIME。

6. 变量定义

命名规则如下:

一个变量名应该是可读的,易记的和恰如其分的。

所有变量在其作用域内必须有一个唯一的名称,不要试图用大小写来区分不同的变量。

变量的名称一般应该是名词形式,要能体现出变量的作用,不要使用毫无意义的名称给方法或者变量命名。

使用骆驼命名法给变量命名。变量名以小写字母开头,以后每遇到一个单词则将其首字母大写。变量名中最重要的词应该放在最前面。如revenueTotal(总收入), expenseAverage(平均支出)

在体现变量的功能前提下缩短变量的长度,变量名为6-8个字符最佳,最好不要超过18个字符。

缩写要少用,除非它有唯一的意义并达成了广泛共识。避免使用程序语言中的保留字和关键字。

在循环和多重循环中才能使用单字符的变量名,如i,j,k,切勿在其它场合中使用它们。

当变量是一个集合如数组,链表或哈希表时建议采用s后缀以明示出来,当其不是时切勿采用。也可以采用数组后缀s,链表后缀list,哈希表后缀map的做法,如users,userList,userMap。

常用的变量命名

数量:count

序列:index

总和:sum/total

序号:id

名称:name

大小:size

返回值:retval

图表:chart/graph/diagram

实体:entity

标志:symbol

平均值:average

状态:status

几何尺寸:width,height

布尔变量的命名

一般来说在Java编程中不推荐使用匈牙利命名法,即为每一个类型的变量名前加上其类型的前缀的做法,但布尔变量例外。

布尔变量一般以单词is,has,can,not开头,如isMale,isLoggedIn, hasChild, canBeSerialized,notFound.

常用的布尔变量后缀:done,error,passed,valid,found,success,ok

变量名中的常见对仗词

Begin/end

First/last

Locked/unlocked

Min/max

Next/previous(prev)

Old/new

Opened/closed

Visible/invisible

Source/target

Source/destination

Up/down

可视化组件变量的定义为功能加可视化后缀,比如deleteBtn

7. 参数定义

同普通变量定义一致。

8. 方法定义

函数(方法)名的首个单词应该是动词,因为它表示一个动作,会执行一个或多个操作。

使用具有描述性的名称,命名要能准确的表示出函数的功能和用途,采用动词加名词的形式,且长度为6-18个字符。如getCurrentPage, isPrimeNumber,printArray

一切函数都应该以小写字母开头,无论是常规函数还是静态函数,无论其是公有,私有还是保护。

现举例如下:

C:createNegotitaion()

R:getNegotitaion(),searchNegotitaion()

U:updateNegotitaion()

D:deleteNegotitaion()

H:handleDeal()

表示判断的:isActive(),hasBuyer(),canDelete()

9. 注释的写法规范

注释用来描述代码中复杂晦涩的部分,它必须能清楚的解释代码的意图而不仅仅是复述代码,如果有些事情在代码中不是很明显,那么就必须要加入注释。不要把注释当作不恰当的包名,类名,变量函数名的补救措施,它只是代码的有效补充。

一般来说,在定义,分支,循环和重要的语义段前都要加上注释,在严格的商业项目中,

注释一般占到代码量的1/3左右。多行注释使用/*….*/,单行注释使用//。类,公有函数和成员变量一定要有清晰而规范的注释。

类的注释:

类的注释主要包含以下几点:功能,作者,创建时间,修改者,修改时间

/**

* 功能: XXXXXXXX

* 作者: XXX

* 时间: XXXX-XX-XX XX:XX:XX

* 修改者: XXX

* 修改时间: XXXX-XX-XX XX:XX:XX

*/

函数的注释:

函数的注释主要包含以下几点:功能,作者,创建时间,参数说明

/**

* 功能: XXXXXXXXXXXXXXXXXXXXXXXX

* 作者: XXX

* 时间: XXXX-XX-XX XX:XX:XX

* 参数说明: XXXXX

*/

成员变量和局部变量的注释:

对于成员变量和重要的局部变量,注释应采用如下形式:

// 功能说明,创建者,创建时间

如果进行了修改,修改者应该改写成如下形式

// 功能说明,创建者,创建时间;修改说明,修改者,修改时间

循环和分支代码段的注释:

一般来说循环和分支都需要注释,它们的注释主要包含以下几点:条件说明,功能说明

/******************

* 条件说明,功能说明

******************/

10. Java 格式化及良好的布局

如果你在编程过程中自觉使用空格,TAB,断行,你就可以提高代码的层次性,通过这

样代码的可读性就能得到有效提高。

有些人在编写代码时依赖Ctrl+Shift+F来规整Java代码,这是一种不好的习惯,首先它

纵容了懒惰的恶习;其次Ctrl+Shift+F不是任何时候都好用的,如在使用非Eclipse的文本编辑器编写网页中的JS代码时,缺乏自动格式化会让你觉得举步维艰。如果在平常编程中自觉的使用正确的缩进,即使是在记事本上你也能将代码保持良好的层次。

适当使用空行来区分不同的语义段,其实空行也是一种注释,它意味着旧的代码段的结

束和新的代码段的开始。

良好的布局并不影响执行速度,内存使用等程序性能,但它会让你在日后理解代码,检查代码以及修改代码变得更容易,也是其他人在你缺位时更容易阅读理解和修改你的代码,编排出色的代码会带来视觉上和思维上的愉悦,这是非程序员不能感受到的,而精雕细琢代码并使之达到美观的程序员们却会从这一过程中得到艺术的满足。

11. Java 程序设计约定

有许多的有关Java 代码可维护性和可改进性的重要约定和标准。99.9% 的时间里,面向他人,面向你的开发同事编程要比面向机器编程重要得多。使你的代码为别人所理解是最重要的。 约定目标 约定

存取成员函数 考虑对数据库中的字段使用滞后初始化使用存取函数获得和修改所有字段对常量采用存取函数对于集合,加入成员函数来插入和删除项一旦可能,将存取函数置为被保护类型,不是公共类型

字段 字段永远为私有类型不要直接访问字段,应使用存取成员函数不要使用静态常量字段(常量),应使用存取成员函数不要隐藏名字一定要初始化静态字段

类 最小化公共和保护接口在开始写代码之前定义一个类的公共接口按以下顺序声明一个类的字段和成员函数:构造函数公共成员函数被保护成员函数私有成员函数私有字段

局部变量 不要隐藏名字一行代码只声明一个局部变量用一个行内注释说明局部变量在使用局部变量之前声明它仅将局部变量专注于一件事

成员函数 给代码加上注释给代码分段使用空白,控制结构之前用一个空行,成员函数之前用两个空行一个成员函数应能在30 秒内让人理解写短小单独的命令行尽量限制成员函数的可见性说明操作的顺序

12. Java 命名约定补充

除了以下几个特例之外,命名时应始终采用完整的英文描述符。此外,一般应采用小写字母,但类名、接口名以及任何非初始单词的第一个字母要大写。

检查点:

使用完整的英文描述符

采用适用于该领域的术语

采用大小写混合使名字可读

尽量少用缩写,但如果用了,要明智地使用,易于理解。

避免使用长的名字(最好小于18个字母)

避免使用类似的名字,或者仅仅是大小写不同的名字

避免使用下划线 操作项 命名约定 示例

实参/参数 使用传递值/对象的完整的英文描述符 customer, account

字段/属性 字段采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写。 firstName, lastName, warpSpeed

布尔型的获取成员函数 所有的布尔型获取函数必须用单词is 做前缀。如果你遵守前文所说的布尔字段的命名标准,那么你只需将字段名赋给它即可。 isPersistent(), isString(),isCharacter()

类 采用完整的英文描述符,所有单词的第一个字母大写。 Customer, SavingsAccount

编译单元文件 使用类或接口的名字,或者如果文件中除了主类之外还有多个类时,加上前缀java 来说明它是一个源码文件。 Customer.java,SavingsAccount.java,Singleton.java

组件/ 部件 使用完整的英文描述来说明组件的用途,末端应接上组件类型。 okButton, customerList,fileMenu

构造函数 使用类名 Customer(), SavingsAccount()

异常 通常采用字母e 表示异常。第二层用ex e, ex

静态常量字段(常量) 全部采用大写字母或者首字母大写的方式,单词之间用下划线分隔。一个较好的方法是采用静态常量获取成员函数,因为它很大地提高了灵活性。 MIN_BALANCE, DEFAULT_DATEMax_Time

获取成员函数 被访问字段名的前面加上前缀get。 getFirstName(), getLastName(),getWarpSpeeed()

接口 采用I前缀加上完整的英文描述符说明接口封装,所有单词的第一个字母大写。 IRunnable, IContactable,IPrompter, ISingleton

局部变量 采用完整的英文描述符,首字母小写,但不要隐藏已有字段。例如,如果有一个字段叫firstName,不要让一个局部变量叫 firstName。 grandTotal, customer,newAccount

循环计数器 通常采用字母i,j,k 或者 counter 都可以接受。 i, j, k, counter

包 采用完整的英文描述符,所有单词都小写。 com.ambysoft.www.persistence.mapping

成员函数 采用完整的英文描述说明成员函数功能,第一个单词尽可能采用一个生动的动词,第一个字母小写。 openFile(), addAccount()

设置成员函数 被访问字段名的前面加上前缀set。 setFirstName(), setLastName(),setWarpSpeed()

13. Java 常用开发术语表

A

oAbstract class:抽象类

oAbstract method:抽象方法

oAnnotation:注释

oAnonymous class:匿名类

oAPI(Application Programming Interface):应用编程接口,由方法和语言构成的库.

oArrayList:实现了List接口的动态数组

oAssertion:断言

oAtrribute map:属性映射

oAutoboxing:自动装箱,表示一个内置类型如int和它的包装类如Integer之间的自动转换

B

oBoolean function:布尔函数

oBytecode:字节码

C

oCasting:类型强制转换

oChannel:频道

oClassCastException:当一个对象引用强制转换程一个不兼容的类型时出现的异常.

oCollection:一个表示对象组或集合的接口

oCSV(Comma-separated values):一种用于存储表格数据的文件形式

oComplier:编译器

oCompose:合成

oComposite function:复合函数,通过多个函数创建的一个函数

D

oDecimal:十进制

oDeep:深度

oDOM(Document Object Model):文档对象模型,一种采用树形表示来处理XML数据的API.

oDatabase:数据库

E

oEdge:边

oElement:元素,XML文档中的一个节点.

oEncapsulation:封装

oEnd tag:结束标签

oEnum:枚举

oEscaping:转义

F

oFunction:函数

oFuzzy search:模糊搜索

G

oGeneric:泛型

oGraph:图

oGUI:用户图形界面

oGrid computing:网格计算

oGroup:组

H

oHashMap:一个将键值映射到值的查找对象

oHeap memory:堆内存

oHTML(Hyper Text Markup Language):超文本标记语言

oHTTP(HyperText Tranfer Protocol):超文本传输协议

I

oInheritance:继承

oInner class:内部类

oIterator:允许迭代到任何Collection类的一个接口

J

oJDBC(Java Database Connectivity):java数据库连接,一种属于Java核心库的用于操作关系数据库的API.

oJDK(Java Development Kit):java开发工具包

oJRE(Java Runtime Environment):java运行时环境

oJSP(Java Server Page):java服务页

oJVM(Java Virtual machine):Java虚拟机

oJavaDoc:属于JDK的一种文档生成工具

oJavaScript:运行于客户端,用于HTML处理的一种轻量级教本语言,语法部分类似于Java.

L

oLayout:布局

oLexical analysis:词法分析

oLinked List:链表

M

oMatcher:一个用于正则表达式模式匹配的Java类

oMetadata:元数据

oMillisecond:微妙

N

oNamespace:命名空间

oNeural network:神经网络

oNode:节点

O

oObject-oriented programmming:面向对象编程

oObject pool:可以从中获得对象的一个实例池

oOrigin:原点

oOverride:子类覆写父类的方法

P

oParser:分析器

oPatch:补丁

oPattern:模式

oPolymorphism:多态性

oPort:端口

oPredicate:谓词

oPrefix:前缀

oProcedural language:过程式语言,如C

oProperty:属性

R

oReal time:实时

oRecursive:递归

oReference:引用

oReflection:反射

oRegular expression:正则表达式

oRelative:相对

oResource:资源

oRunnable:多线程编程使用的一个接口.

S

oSyntax:语法

oScreen scraping:屏幕抓取

oSplit:分割

oState:状态

oStatic:静态

oSequence:序列

oSwing:构建在AWT上更高级的图形用户界面

oSynchronized:同步,用于线程安全协作的技术

T

oTag:标签

oThread:进程

oTiger : Sun给Java1.5的代号

oToken:标记

oTranslation:平移

oTriple:三元组

oType:类型

U

oUnicode:统一字符界面

oUnit testing:单元测试

V

oVisitor pattern:访问者模式

W

oWAR(Web Application Archive):Web应用程序归档

oWeb Service:Web服务

oWeight:权

oWell-formed:格式良好的

oWhitespace:空白符

X

oXML(Extensible Markup Language):一种描述分级数据结构的文本标记语言

java+bizx文件_14.Teambiz后台开发规范相关推荐

  1. 【Java后台开发规范】--- 圈复杂度

    文章目录 前言 其他类型的规范 圈复杂度 提炼方法 if.else 卫语句 去else 策略模式 switch 循环嵌套 其他建议 前言 做Java开发的,大多数可能都有看过阿里的Java后台开发手册 ...

  2. 阿里腾讯外包Java怎样_阿里Java岗、腾讯后台开发岗面经(拿到AT双Offer)

    4.5,前段时间去面了阿里腾讯的暑期实习,腾讯总共三轮技术+一轮HR面目前已结束等结果中,阿里已经两轮技术面,听面试官说之后还有一轮交叉面和HR面,正在准备中...... 相比较来说,投腾讯的那个部门 ...

  3. Java面试资料集合,后台开发JAVA岗

    前言 我在知乎上看到这样一个话题,关于程序员的: 听同学说干码农这行每天都要加班,这样的话,不就没精力做别的事情了.有个师兄做 IT 销售,不太辛苦,生活还算是美滋滋,是真的吗?我也知道社会上干哪一行 ...

  4. Java后台项目开发规范

    Java后台项目开发规范 写在前边 1.目标 2. 原则 一.命名规范 1.包命名规范 2.类命名规范[**UpperCamelCase命名法**] 2.1==如果在模块或者接口,类,方法中使用了设计 ...

  5. Android开发规范[Java+android]

    说明:该文档由阿里<Java开发规范>和<Android开发规范>整理而来  [强制]必须遵守,违反本约定或将会引起严重的后果:  [推荐]尽量遵守,长期遵守有助于系统稳定 ...

  6. JAVA 开发规范标准(集合)

    JAVA 开发规范 一.编程规约 (一)命名规约 1. [强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符 号结束. 反例:_name / __name / $Object / ...

  7. Java开发规范整理

    Java开发规范整理 (参考<Java开发手册嵩山版>) 文章目录 Java开发规范整理 一.编程规约 (一)命名 (二)常量定义 (三)代码格式 (四)OOP面向对象程序设计 (五)时间 ...

  8. Java开发规范(一)

    本文摘自阿里开发规范,是阿里工程师们严格遵循的开发标准,同时也是培养自己写出高质量代码的必然要求,不让自己写出来的代码像个刚毕业的. 1.命名的风格: 1. 代码中的命名均不能以下划线或美元符号开始, ...

  9. Java开发规范(阿里+腾讯)

    如何适应企业的标准化开发? 文章目录 前言 腾讯开发规范整理(精简) 阿里开发规范整理(精简) 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越 ...

最新文章

  1. protobufjs 命令执行_【原码笔记】-- protobuf.js 与 Long.js
  2. 1900页数学基础:面向CS的线性代数、拓扑、微积分和最优化
  3. [译] ES6+ 中的 JavaScript 工厂函数(第八部分)
  4. 九度OJ 1336:液晶屏裁剪 (GCD)
  5. python模块化设计耦合度_什么是程序设计中的高内聚、低耦合?
  6. Subsonic使用中
  7. springCloud Zuul 网关fallback
  8. selenium python_Python+Selenium基础入门及实践
  9. 对着爬虫网页HTML学习Python正则表达式re
  10. 使用MybatisPlus在实体中添加数据库表中不存在的字段
  11. Hibernate3.x异常No row with the given identifier exists 解决方法
  12. 某企业虚拟化平台时间同步异常排查
  13. [Android Pro] java.lang.IllegalStateException: Fragment(XXFragment) not attached to Activity异常
  14. bzoj 4709: [Jsoi2011]柠檬(分段DP+决策单调性)
  15. gitlab 安装、配置、清空、卸载、重装
  16. VS2015 密钥key
  17. SecureCRT软件安装
  18. Wav2KWS: Transfer Learning From Speech Representations for Keyword Spotting(2021)
  19. 解决JS双击事件dblclick触发时,同时会执行click事件中的语句
  20. 角度转度分秒lisp函数_自改小程序,提示错误,运行另一个lisp后就不会出错,求帮忙!...

热门文章

  1. IINA+,让IINA变身网络直播客户端
  2. Spring -- 集成web环境
  3. 0x00.基础漏洞篇
  4. Git 的下载与安装
  5. stm32h750电路_基于STM32H750的开发板,可用于评估,学习和开发
  6. idea的springboot项目的xml文档中查询语句有黄色背景
  7. 计算机进制之间的相互转化---大学生的自我救赎
  8. WebStorm打包Vue项目
  9. 1:三层for循环计算转置矩阵的乘积
  10. 介绍一个前端切图神器avocode