java代码标准详细版.docx
- 文档编号:26010828
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:14
- 大小:77.73KB
java代码标准详细版.docx
《java代码标准详细版.docx》由会员分享,可在线阅读,更多相关《java代码标准详细版.docx(14页珍藏版)》请在冰豆网上搜索。
java代码标准详细版
Java代码标准
本Java代码标准以SUN的标准Java代码标准为基础,为适应咱们公司的实际需要,可能会做一些修改。
本文档中没有说明的地址,请参看SUNJava标准代码标准。
假设是两边有冲突,以SUNJava标准为准。
1.标识符命名标准
概述
标识符的命名力求做到统一、达意和精练。
尽可能做到每一个人依照标准来,多人开发如一人开发一样。
统一
统一是指,关于同一个概念,在程序顶用同一种表示方式,比如关于供给商,既能够用supplier,也能够用provider,可是咱们只能选定一个利用,至少在一个Java项目中维持统一。
统一是作为重要的,假设是对同一概念有不同的表示方式,会使代码混乱难以明白得。
即便不能取得好的名称,可是只要统一,阅读起来也可不能太困难,因为阅读者只要明白得一次。
达意
达意是指,标识符能准确的表达出它所代表的意义,比如:
newSupplier,OrderPaymentGatewayService等;而supplier1,service2,idtts等那么不是好的命名方式。
准确有两成含义,一是正确,而是丰硕。
假设是给一个代表供给商的变量起名是order,显然没有正确表达。
一样的,supplier1,远没有targetSupplier意义丰硕。
精练
精练是指,在统一和达意的前提下,用尽可能少的标识符。
假设是不能达意,宁愿不要精练。
比如:
theOrderNameOfTheTargetSupplierWhichIsTransfered太长,
transferedTargetSupplierOrderName那么较好,可是transTgtSplOrdNm就不行了。
省略元音的缩写方式不要利用,咱们的英语往往尚未好到看得懂奇怪的缩写。
骆驼法那么
Java中,除包名,静态常量等特殊情形,大部份情形下标识符利用骆驼法那么,即单词之间不利用特殊符号分割,而是通过首字母大写来分割。
比如:
supplierName,addNewContract,而不是supplier_name,add_new_contract。
英文vs拼音
尽可能利用通俗易懂的英文单词,假设是可不能能够向队友求助,实在不行那么利用汉语拼音,幸免拼音与英文混用。
比如表示归档,用archive比较好,用pigeonhole那么不行,用guiDang尚可同意。
包名
利用小写字母如,不要
单词间不要用字符隔开,比如,而不要_util
类名
首字母大写
类名要首字母大写,比如LCIssueInfoManagerEJB,LCIssueAction;不要lcIssueInfoManagerEJB,lcIssueAction.
后缀
类名往往用不同的后缀表达额外的意思,如下表:
后缀名
意义
举例
EJB
表示这个类为EJB类
LCIssueInfoManagerEJB
Service
表明这个类是个服务类,里面包含了给其他类提同业务服务的方法
PaymentOrderService
Impl
这个类是一个实现类,而不是接口
PaymentOrderServiceImpl
Inter
这个类是一个接口
LifeCycleInter
Dao
这个类封装了数据访问方法
PaymentOrderDao
Action
直接处理页面请求,管理页面逻辑了类
UpdateOrderListAction
Listener
响应某种事件的类
PaymentSuccessListener
Event
这个类代表了某种事件
PaymentSuccessEvent
Servlet
一个Servlet
PaymentCallbackServlet
Factory
生成某种对象工厂的类
PaymentOrderFactory
Adapter
用来连接某种以前不被支持的对象的类
DatabaseLogAdapter
Job
某种按时间运行的任务
PaymentOrderCancelJob
Wrapper
这是一个包装类,为了给某个类提供没有的能力
SelectableOrderListWrapper
Bean
这是一个POJO
MenuStateBean
方式名
首字母小写,如addOrder()不要AddOrder()
动词在前,如addOrder(),不要orderAdd()
查询方式要查询的内容在前,条件在后。
如getXxByXx()
动词前缀往往表达特定的含义,如下表:
前缀名
意义
举例
create
创建
createOrder()
delete
删除
deleteOrder()
add
创建,暗示新创建的对象属于某个集合
addPaidOrder()
remove
删除
removeOrder()
init或则initialize
初始化,暗示会做些诸如获取资源等特殊动作
initializeObjectPool
destroy
销毁,暗示会做些诸如释放资源的特殊动作
destroyObjectPool
open
打开
openConnection()
close
关闭
closeConnection()<
read
读取
readUserName()
write
写入
writeUserName()
get
获得
getName()
set
设置
setName()
prepare
准备
prepareOrderList()
copy
复制
copyCustomerList()
modity
修改
modifyActualTotalAmount()
calculate
数值计算
calculateCommission()
do
执行某个过程或流程
doOrderCancelJob()
dispatch
判断程序流程转向
dispatchUserRequest()
start
开始
startOrderProcessing()
stop
结束
stopOrderProcessing()
send
发送某个消息或事件
sendOrderPaidMessage()
receive
接受消息或时间
receiveOrderPaidMessgae()
respond
响应用户动作
responseOrderListItemClicked()
find
查找对象
findNewSupplier()
update
更新对象
updateCommission()
find方式在业务层尽可能表达业务含义,比如findUnsettledOrders(),查询未结算定单,而不要findOrdersByStatus()。
数据访问层,find,update等方式能够表达要执行的sql,比如findByStatusAndSupplierIdOrderByName,345)
域(field)名
静态常量
全大写用下划线分割,如
publicstaticfindStringORDER_PAID_EVENT=“ORDER_PAID_EVENT”;
列举
全大写,用下划线分割,如
publicenumEvents{
ORDER_PAID,
ORDER_CREATED
}
其他
首字母小写,骆驼法那么,如:
publicStringorderName;
局部变量名
参数和局部变量名首字母小写,骆驼法那么。
尽可能不要和域冲突,尽可能表达那个变量在方式中的意义。
2.代码格式
利用tab缩进源代码。
利用alt+shift+f(eclipse)来格式化代码,注:
格式化代码后还需手动来调下。
源文件编码
源文件利用utf-8编码,结尾用unixn分格。
行宽
行宽度不要超过80。
Eclipse标准
包的导入
删除不用的导入,尽可能不要利用整个包的导入。
在eclipse下常常利用快捷键ctrl+shift+o修正导入。
类格式
域格式
每行只能声明一个域。
域的声明用空行隔开。
方式格式
代码块格式
缩进风格
大括号的开始在代码块开始的行尾,闭合在和代码块同一缩进的行首,同一层次的代码要维持整齐,例如:
空格的利用
表示分割时用一个空格
不能如此:
if(a>b){
∙
持续两行的空行代表更大的语义分割。
∙方式之间用空行分割(尽可能用一行空行)
∙域之间用空行分割
∙超过十行的代码假设是还不用空行分割,就会增加阅读困难
3.注释标准
注释vs代码
∙注释宜少二精,不宜多而滥,更不能误导
∙命名达意,结构清楚,类和方式等责任明确,往往不需要,或只需要很少注释,就能够够够让人读懂;相反,代码混乱,再多的注释都不能弥补。
因此,应当先在代码本身下功夫。
∙不能正确表达代码意义的注释,只会损害代码的可读性。
∙过于详细的注释,对显而易见的代码添加的注释,罗嗦的注释,还不如不写。
∙注释要和代码同步,过量的注释会成为开发的负担
JavaDoc
说明类、域和方式等的意义和用法等的注释,要以javadoc的方式来写。
JavaDoc是个类的利用者来看的,要紧介绍是什么,怎么用等信息。
凡是类的利用者需要明白,都要用JavaDoc来写。
非JavaDoc的注释,往往是个代码的爱惜者看的,着重告述读者为何如此写,如何修改,注意什么问题等。
如下:
类
块级别注释
块级别注释,单行时用*/。
较短的代码块用空行表示注释作用域
较长的代码块要用
/*------start:
------*/
和
/*--------end:
-------*/
包围
行内注释
行内注释用要比iforder’sisPaidmethodreturnstrue,…更易明白得
减少代码嵌套层次
代码嵌套层次达3层以上时,一样人明白得起来都会困难。
下面的代码是一个简单的例子:
publicvoiddemo(inta,intb,intc){
if(a>b){
if(b>c){
doJobA();
}elseif(b doJobB() } }else{ if(b>c){ if(a doJobC(); } } } } 减少嵌套的方式有很多: ∙归并条件 ∙利用return以省略后面的else ∙利用子方式 比如上例,归并条件后成为: publicvoiddemo(inta,intb,intc){ if(a>b&&b>c){ doJobA(); } if(a>b&&c>b){ doJobB(); } if(a<=b&&c doJobC(); } } 假设是利用return那么成为: publicvoiddemo(inta,intb,intc){ if(a>b){ if(b>c){ doJobA(); return; } doJobB() return; } if(b>c){ if(a doJobC(); } } } 利用子方式,确实是将嵌套的程序提掏出来放到另外的方式里。 程序职责单一 关注点分离是软件开发的真理。 人类自因此能够完成复杂的工作,确实是因为人类能够将工作分解到较小级别的任务上,在做每一个任务时关注更少的东西。 让程序单元的职责单一,能够使你在编写这段程序时关注更少的东西,从而降低难度,减少犯错。 变量的声明,初始化和被利用尽可能放到一路 例如说如下代码: intorderNum=getOrderNum(); //dosomethingwithouorderNumhere call(orderNum); 上例中的注释处代表了一段和orderNum不相关的代码。 orderNum的声明和初始化离被利用的地址相隔了很多行的代码,如此做不行,不如如此: //dosomethingwithouorderNumhere intorderNum=getOrderNum(); call(orderNum); 缩小变量的作用域 能用局部变量的,不要利用实例变量,能用实例变量的,不要利用类变量。 变量的生存期越短,以为着它被误用的机缘越小,同一时刻程序员要关注的变量的状态越少。 实例变量和类变量默许都不是线程平安的,局部变量是线程平安的。 比如如下代码: publicclassOrderPayAction{ privateOrderorder; publicvoiddoAction(){ order=(); doJob1(); doJob2(); } privatevoiddoJob1(){ doSomething(order); } privatevoiddoJob2(){ doOtherThing(order); } } 上例中order只只是担当了在方式间传递参数之用,用下面的方式更好: publicclassOrderPayAction{ publicvoiddoAction(){ order=(); doJob1(order); doJob2(order); } privatevoiddoJob1(Orderorder){ doSomething(order); } privatevoiddoJob2(Orderorder){ doOtherThing(order); } } 尽可能不要用参数来带回方式运算结果 比如: publicvoidcalculate(Orderorder){ intresult=0; //dolotsofcomputingandstoreitintheresult (result); } publicvoidaction(){ order=(); calculate(order); //dolotsofthingsaboutorder } 例子中calculate方式通过传入的order对象来存储结果,不如如下写: publicintcalculate(Orderorder){ intresult=0; //dolotsofcomputingandstoreitintheresult returnresult; } publicvoidaction(){ order=(); (calculate(order)); //dolotsofthingsaboutorder } 最后,仍是要多些单元测试类,因为单元测试类能够提早觉察代码中的好多问题。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 代码 标准 详细