




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java 编码规范改版履历版本完稿时间作者说明1.020150920barry初稿1 概述 1.1 编写目的 Google Java代码规范比较通用,在遵守此规范的前提下,针对本公司项目有一些具体扩展,用于规范JAVA项目编程过程中的命名和代码书写规范。 1.2 预期读者 开发组全体成员。 1.3 适用范围 适用于开发组所有基于JAVA开发的项目2 命名规范2.1 包命名规则开发组将基于JAVA开发中产生的包分为两类,一是与各业务系统相关的包,一是与业务系统无关的、可公用的包。它们的命名规则除要遵守:“包名应全部是小写字母,包名中不能
2、出现下划线,并且第一个字母不能是数字”的规则 1) 与业务系统相关的包命名与业务系统相关的包命名格式为:com.unique.<projectname>.<modulename>其中:<projectname>为项目英文简称或缩写;如果项目名和公司名重复,只取其一即可。<modulename>为模块英文名称或简称,如果无细分模块的话可省略模块名。2) 与业务系统无关的、可公用的包通用包命名格式为:com. mon.<modulename>/所有项目通用com.unique.<projectname>.c
3、ommon/单个项目内各模块通用2.2 类名、接口命名规则类和接口的名称应是一个名词,采用大小写混和的方式,如果使用拼音则应是全拼,所有单词都应紧靠在一起,其中每个单词的首字母应大写,接口名称应以大写I开始。例如:class User;interface ICommonConnection;class BuMen;/此处为部门全拼每个类定义要前必须加类的说明。类和接口的后缀(前缀):后缀名意义举例Service表明这个类是个服务类,里面包含了给其他类提同业务服务的方法PaymentOrderService Impl这个类是一个实现类,而不是接口Payme
4、ntOrderServiceImpl I这个类是一个接口ILifeCycleDao这个类封装了数据访问方法PaymentOrderDao Action直接处理页面请求,管理页面逻辑了类UpdateOrderListAction Listener响应某种事件的类PaymentSuccessListener Event这个类代表了某种事件PaymentSuccessEvent Servlet 一个ServletPaymentCallbackServlet Factory生成某种对象工厂的类PaymentOrderFactory&
5、#160;Adapter 用来连接某种以前不被支持的对象的类DatabaseLogAdapterJob某种按时间运行的任务PaymentOrderCancelJob Wrapper 这是一个包装类,为了给某个类提供没有的能力SelectableOrderListWrapper Bean这是一个POJO MenuStateBean2.3 方法命名规则方法名应是一个动词或动名结构,采用大小写混和的方式,其中第一个单词的首字母用小写,其后单词的首字母大写。例如:Xxxxx.getBmList();每个方法前必须加说明包括:参数说明、返回值说明、异常说
6、明。如果方法名实在是太长可以对变量名缩写,但是必须添加相应的说明。 前缀名意义举例create创建createOrder()delete删除deleteOrder() add创建,暗示新创建的对象属于某个集合addPaidOrder()remove删除removeOrder() init/initialize初始化,暗示会做些诸如获取资源等特殊动作initializeObjectPool ()destroy销毁,暗示会做些诸如释放资源的特殊动作destroyObjectPool ()open打开openConnection()close
7、0;关闭closeConnection()read读取readUserName() write写入writeUserName() get获得getName() set设置setName() prepare准备prepareOrderList()modify修改 modifyActualTotalAmount() copy 复制copyCustomerList()calculate数值计算 calculateCommission()do执行某个过程或流程doOrderCancelJob() dispatch
8、判断程序流程转向 dispatchUserRequest()start开始startOrderProcessing()stop结束 stopOrderProcessing()send发送某个消息或事件 sendOrderPaidMessage()receive接受消息或时间 receiveOrderPaidMessgae()respond响应用户动作 responseOrderListItemClicked()find查找对象 findNewSupplier()update更新对象 updateCommission()
9、60;find方法在业务层尽量表达业务含义,比如 findUnsettledOrders(),查询未结算订单。 数据访问层,find,update等方法可以表达要执行的sql,比如findByStatusAndSupplierIdOrderByName(Status.PAID, 345)2.4 变量命名规则 变量命名一般采用大小写混和的方式,第一个单词的首字母小写,其后单词的首字母大写,变量名一般不要用下划线或美元符号开头。变量名应简短且有意义,即,能够指出其用途。除非是一次性的临时变量,应尽量避免单个字符的变量名。1) 类的实例对象定义如下:Perso
10、n person; 2) 同一个类的多个对象可以采用一下定义方式:Person person1;Person person2;3) 集合类的实例命名使用集合包含元素的英文名称的复数表示,例如:Vector persons; 4) 如果变量名实在是太长可以对变量名缩写,但是必须在类说明或方法说明部分(视缩写的范围而定)进行说明5) 数组的声明要用"int packets"的形式,而不要用"int packets"。 2.5 常量命名
11、规则类常量和 ANSI常量的命名应全部用大写,单词间用下划线隔开。例如:final static int MIN_WIDTH = 4;final static int MAX_WIDTH = 99;2.6 骆驼法则(google)首字母小写,骆驼法则,如: public String orderName;3 代码书写规范 3.1 代码规模 类的方法的代码行数不能过长,尽量控制在100行(90%),长的方法要拆分成私有函数3.2 返回值 在一般情
12、况下,方法返回值不应返回null。而是尽量使用异常代替返回null。如果在特殊情况必须返回null, 必须在方法说明中加以特别说明,如使用“特别注意”等字样。例如:从一个集合类实例中提取一个对象,因为有些集合类实例是允许null作为键或值的,这个时候用异常取代返回null就不合适了。 如果方法的返回值是集合类对象,而且返回的集合对象不包含任何元素时,则应返回0长度或0大小的集合对象。不能返回null。3.3 异常 整个应用系统使用自行设计的唯一异常类表,该类包括message(表示错误信息)和ID号(整型,表示异常类型)两部分,该类在创建时是自动获得类名、方法名
13、、行号等信息。在系统开发和上线之后的一段时间内,异常信息要直接发送到log中 ,以便于开发人员迅速定位错误。3.4 表达式 1) 所有的算术、逻辑表达式的每一项运算都需要加圆括号,避免使用java语言的运算符优先级,例如: (2 *(x + y)/(1 - x); (n > 1)?(n - 1):(n = 1); result =(result && (lastOperand >
14、0;nextOperand) ) 2) 二元算术运算符(除去“/”)、二元逻辑元素符、赋值运算符,既“+、-、*、%、+=、-=、*=、/=、%=、>、<、 =、 >=、<=、 =”等符号左右两边要加空格,例如: if(lastOperand >= lastOperand) 3) 参数说明部分的逗号“,”和for语句循环说明部分的分号“;”之前不需要留空格,之后需要留空格。如: Calculator.add(int a, int&
15、#160;b); for(int i = 0; i < 100; i +); 4) 体前代码 ,体前代码包括: ü 方法的参数说明和异常说明;ü 条件语句,如if语句、switch语句;ü 循环语句,如while语句、for语句。 这些语句的参数说明、条件说明和循环控制都放在圆括号内。如果不是特别长,应尽量放在同一行内。 同时注意,参数说明、条件说明和循环控制的结束圆括号“)”与体开始花括号“
16、”之间留一个空格。 3.5 注释 注释是软件可读性的具体体现。程序注释量一般占程序编码量的20%,软件工程要求不少于20%。以下是四种必要的注释: 1) 类说明注释 注释一般位于 package/import 语句之前,class 描述之前。要求至少写出内容说明、创建者、创建时间和特别注意事项等内容。例如: /* * 名称: $file_name<br> * 一句话功能简述 * param 参数1 参数1说明,输入输出* param 参数2 参数1说明,输入输出*&
17、#160; return: 返回类型说明 <br> * exception/throws 违例类型 违例说明* 最近修改间:$date $time<br> * see 类,类#方法,类#成员 * author 刘 华 * deprecated 表示不建议使用该方法,只所以存大,就是为了兼职才版本 * 变更者 * 变更日期
18、;* 变更原因 */ 2) 方法说明注释 对几乎每个方法都应有适当的说明,位于方法声明之前,包括:说明,参数说明、异常说明、返回值说明和特别说明等。例如: /* * 方法描述 * * $tags * param id String唯一标识 * param person
19、id String 用户唯一标识 * return rtobj BaseReturn 基本返回对象 * 变更记录 $date $time 刘 华 创建 * */ 3) 体内代码的注释 体(方法体、代码块体、静态代码块体等)内的代码按照功能分成多个虚拟的功能块,每个块以块注释“/* xxx */”注释开始,以空行结束;例如: /*是否超级管理员*/ private Boolean isadmin = false; if(null!=curOuId&&!cur
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业数据安全法律援助与处理合同
- 职业技能培训项目合作研发实施协议
- 小产权房居住权分割与共有权变更及租赁合同协议
- 跨界合作授权独家补充协议书
- 跨国合作影视广告制作与全球市场推广服务协议
- 医疗查房车租赁及智能设备维护保养合同
- 游艇码头泊位租赁及船舶租赁与维修保养服务合同
- 共有产权住房离婚份额分割与财产清算协议
- 国际物流货物追踪与客户满意度提升服务合同
- 网络内容审核办公场地租赁及广告位合作合同
- 铁道机车-机车检修运用
- 安全操作规程培训课件
- DL∕T 547-2020 电力系统光纤通信运行管理规程
- 切尔诺贝利核电站事故工程伦理分析
- (无线)门禁系统报价单
- 水电站水利工程施工组织设计毕业论文
- 联想EAP案例分析
- 社会工作介入老年社区教育的探索
- 国开电大-工程数学(本)-工程数学第4次作业-形考答案
- 高考倒计时30天冲刺家长会课件
- 施工项目现金流预算管理培训课件
评论
0/150
提交评论