JAVA编码规范(开发培训讲义)模板课件.ppt

上传人:小飞机 文档编号:1285842 上传时间:2022-11-04 格式:PPT 页数:70 大小:351.73KB
返回 下载 相关 举报
JAVA编码规范(开发培训讲义)模板课件.ppt_第1页
第1页 / 共70页
JAVA编码规范(开发培训讲义)模板课件.ppt_第2页
第2页 / 共70页
JAVA编码规范(开发培训讲义)模板课件.ppt_第3页
第3页 / 共70页
JAVA编码规范(开发培训讲义)模板课件.ppt_第4页
第4页 / 共70页
JAVA编码规范(开发培训讲义)模板课件.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《JAVA编码规范(开发培训讲义)模板课件.ppt》由会员分享,可在线阅读,更多相关《JAVA编码规范(开发培训讲义)模板课件.ppt(70页珍藏版)》请在三一办公上搜索。

1、Lishoulin,PTC,普联软件(中国)有限公司2011年度入职培训,济南燕山学院,PANSOFT,JULY,2011,编码规范(JAVA版),JAVA之路JAVA开发人员编码规范,Technology Team Progress,Lishoulin,PTC普联软件(中国)有限公司PANSO,编码规范的必要性,你自己|编码规范对于程序员自己而言尤为重要 其它人|几乎没有一个软件,在其整个生命周期中,均由最初的开发人员来维护 ,其它的人能看懂你的代码吗?生命周期|80%的花费在于维护 可读性|编码规范可以改善软件的可读性代码理解|有助于尽快而彻底地理解新的代码团队协作|必不可少的规范正确率|

2、保证正确率,规避低级的错误,PANFOT JAVA Developer,编码规范的必要性你自己|编码规范对于程序员自己而言尤为重要,规范的实施,原则|参照规范|注重实践|从点滴做起范围|全体使用JAVA开发的编码人员|设计人员时机|开发软件项目|产品的任何时间检查|项目组内部检查|公司专门人员抽查修改或升级|专门小组负责,PANFOT JAVA Developer,规范的实施原则|参照规范|注重实践|从点滴做起PANFOT,主要内容,JAVA代码编写规范数据库访问规范操作界面设计规范常用工具,PANFOT JAVA Developer,主要内容JAVA代码编写规范PANFOT JAVA Dev

3、e,JAVA代码编写规范,PANFOT JAVA Developer,JAVA代码编写规范PANFOT JAVA Develope,文件组织,文件名|java|class文件组织|单个源文件长度控制在2000行,PANFOT JAVA Developer,文件组织文件名|java|classPANFOT JAVA,包与类、接口命名,包|全部小写,com+公司名+产品名+模块名类|名词|大小写混合|简洁而完整|首字符使用J或者T接口|大小写混合|简洁而完整|首字符使用I,PANFOT JAVA Developer,com.pansoft.financecom.pansoft.public cla

4、ss JRaster;class JImageSprite interface IRasterDelegate;interface IStoring;,包与类、接口命名包|全部小写,com+公司名+产品名+模块名,方法命名,方法|动词|大小写混合|首字母小写|其后单词首字母大写,PANFOT JAVA Developer,run();runFast();getBackground();,方法命名方法|动词|大小写混合|首字母小写|其后单词首字母大,变量命名,大小写混合|首字母小写|后面单词首字母大写不应使用下划线名称应简短而富描述性|便于记忆避免单字母变量名,除非| 临时变量i|j|k|m|n

5、一般用于整型临时变量c|d|e一般用于字符型临时变量,PANFOT JAVA Developer,char c;int i;float myWidth;,变量命名大小写混合|首字母小写|后面单词首字母大写PANFO,成员变量,和变量名相似前面加m,PANFOT JAVA Developer,int mEmployeeId;String mName;Customer mCustomer;,成员变量和变量名相似PANFOT JAVA Develope,实参变量,大小写规则和变量名相似前面需要加一个p,PANFOT JAVA Developer,public void callMe(int pAge

6、, String pName),实参变量大小写规则和变量名相似PANFOT JAVA Dev,常量,全部大写单词间用下划线隔开,PANFOT JAVA Developer,static final int MIN_WIDTH = 4;static final int MAX_WIDTH = 999;static final int GET_THE_CPU = 1;,常量全部大写PANFOT JAVA Developersta,开头注释,开头有一个C语言风格的注释列出类名|版本信息|日期|版权,PANFOT JAVA Developer,/* * Classname * * Version in

7、formation * * Date * * Copyright notice */,开头注释开头有一个C语言风格的注释PANFOT JAVA D,包和引入语句,第一个非注释行是包语句 之后可以跟引入语句,PANFOT JAVA Developer,package java.awt; import java.awt.peer.CanvasPeer;,包和引入语句 第一个非注释行是包语句 PANFOT JAVA,类/接口定义,类|接口注释类的(静态)变量 实例变量 构造器 方法,PANFOT JAVA Developer,类/接口定义 类|接口注释PANFOT JAVA Devel,静态变量,首

8、先是类的公共变量随后是保护变量 再后是包一级别的变量 最后是私有变量,PANFOT JAVA Developer,静态变量首先是类的公共变量PANFOT JAVA Devel,实例变量,首先是公共级别 随后是保护级别的 再后是包一级别的 最后是私有级别的,PANFOT JAVA Developer,实例变量首先是公共级别 PANFOT JAVA Develo,方法,该按功能分组布局非按访问区域分组为了更便于阅读和理解代码,PANFOT JAVA Developer,方法该按功能分组布局PANFOT JAVA Develope,缩进,4个空格为一个缩进单位JBuilder缺省2个可更改|Ecli

9、pse可设置,PANFOT JAVA Developer,缩进4个空格为一个缩进单位PANFOT JAVA Devel,行长度,避免一行超过80字符,PANFOT JAVA Developer,行长度避免一行超过80字符PANFOT JAVA Devel,换行(断行原则),在一个逗号后面断开 在一个操作符前面断开 宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开 新的一行应该与上一行同一级别表达式的开头处对齐,PANFOT JAVA Developer,换行(断行原则)在一个逗号后面断开 PANFOT JAVA,换行(断行原则),在一个逗号后面断

10、开 在一个操作符前面断开 宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开 新的一行应该与上一行同一级别表达式的开头处对齐 缩进后若使第二行和第三行移得很靠右,可以代之以缩进8个空格,PANFOT JAVA Developer,换行(断行原则)在一个逗号后面断开 PANFOT JAVA,换行(断行原则),PANFOT JAVA Developer,/正常断行 someMethod(int anArg, Object anotherArg, String yetAnotherArg, Object andStillAnother) . /若断行后很

11、靠右,则下面行可以缩进8个空格,看上去更美 观。 private static synchronized horkingLongMethodName(int anArg, Object anotherArg, String yetAnotherArg, Object andStillAnother) . ,换行(断行原则)PANFOT JAVA Developer,IF语句断行,PANFOT JAVA Developer,/缩小过少,不易阅读1 if (condition1 ,通常使用8个缩进,看起来清晰,IF语句断行PANFOT JAVA Developer /,三元运算符,PANFOT J

12、AVA Developer,1 alpha = (aLongBooleanExpression) ? beta : gamma;2 alpha = (aLongBooleanExpression) ? beta : gamma;3 alpha = (aLongBooleanExpression) ? beta : gamma;,三种可行的方法,三元运算符PANFOT JAVA Developer1 a,注释,PANFOT JAVA Developer,实现注释|注释代码或者实现细节|使用/*/或/注释 |与C+相同 文档注释|Java独有,使用/* */表示|可转为HTML不应包括|制表符和回

13、退符之类的特殊字符 四种注释风格|块|单行|尾端|行末,注释 PANFOT JAVA Developer实现注释|注,块注释,PANFOT JAVA Developer,目的|对文件,方法,数据结构和算法的描述 位置|文件开始|方法之前|方法内部,块注释 PANFOT JAVA Developer目的|对文,块注释,PANFOT JAVA Developer,首部有一空行|利于代码分隔可以以/*-开头|indent(1)就可以将之识别为一个代码块的开始,/* * Here is a block comment. */,块注释 PANFOT JAVA Developer首部有一空,单行注释,PA

14、NFOT JAVA Developer,短注释|可以显示在一行内,与其后的代码具有一样的缩进多于一行|不能在一行内写完,就该采用块注释,1 if (condition) 2 /* Handle the condition. */3 /code.4 ,单行注释 PANFOT JAVA Developer短注释|,尾端注释,PANFOT JAVA Developer,极短的注释|可以与它们所要描述的代码位于同一行极短的注释共存|应该具有相同的缩进,1 if (a = 2) 2 return TRUE; /* special case */3 else 4 return isPrime(a); /*

15、 works only for odd a */5 ,尾端注释 PANFOT JAVA Developer极短的注,行末注释,PANFOT JAVA Developer,三种风格,1 if (foo 1) 2. / Do a double-flip.3 4 else 5. return false; / Explain why here.6 7. /if (bar 1) 8 / / Do a triple-flip.9 /10 /else 11 / return false;12 /,行末注释 PANFOT JAVA Developer三种风格,文档注释,PANFOT JAVA Develop

16、er,JAVA描述信息|类、接口、构造器,方法,以及字段 注释定界符|/*.*/ 位置|应位于声明之前 ,不能在其内部,/* * The Example class provides . */ public class Example .,文档注释 PANFOT JAVA DeveloperJAVA,变量声明|个数,PANFOT JAVA Developer,推荐一行一个声明|因为这样利于写注释 不要|不同类型变量的声明不放在同一行,1 int level; / indentation level int size; / size of table /这样不好 3 int level, siz

17、e; 4 int foo, fooarray; /错误写法,变量声明|个数 PANFOT JAVA Developer推,变量声明|初始化,PANFOT JAVA Developer,尽量|在声明局部变量的同时初始化 或者|初始值依赖于某些先前发生的计算,可不初始化,变量声明|初始化 PANFOT JAVA Developer,变量声明|布局,PANFOT JAVA Developer,只在|代码块的开始处声明变量不要|首次用到该变量时才声明之,for循环例外避免|声明的局部变量覆盖上一级声明的变量,1 void myMethod() 2 int int1 = 0; / 好的声明3 if (c

18、ondition) 4 int int2 = 0; / 不好的声时5 .6 7 ,变量声明|布局 PANFOT JAVA Developer只,类与接口声明,PANFOT JAVA Developer,方法名与其参数列表之前的左括号(间不要有空格 左大括号“”位于声明语句同行的末尾右大括号“”另起一行除非是一个空语句方法与方法之间以空行分隔,1 class Sample extends Object 2 int ivar1;3 int ivar2;4 Sample(int i, int j) 5 ivar1 = i;6 ivar2 = j;7 8 int emptyMethod() 9 .10

19、 ,类与接口声明 PANFOT JAVA Developer方法,简单语句,PANFOT JAVA Developer,每行至多包含一条语句,1 argv+; / Correct 2 argc-; / Correct 3 argv+; argc-; / AVOID!,简单语句 PANFOT JAVA Developer每行至多,复合语句,PANFOT JAVA Developer,定义|包含在大括号中的语句序列 缩进|被括其中的语句应该较之复合语句缩进一个层次 左大括号|位于复合语句起始行的行尾; 右大括号|另起一行并与复合语句首行对齐,1 if ( this.isExist(“0001”)

20、2 argc-; / Correct 3 System.out.println(“HELLO”); 4 ,复合语句 PANFOT JAVA Developer定义|包,返回语句,PANFOT JAVA Developer,带返回值时|return语句不使用小括号()“除非|以某种方式使返回值更为显见,1. return; 2. return myDisk.size(); 3. return (size ? size : defaultSize);,返回语句 PANFOT JAVA Developer带返回值,If|if-else|if else-if else,PANFOT JAVA Deve

21、loper,使用如下正确格式,1. if (condition) 2 statements; 3 4 if (condition) 5 statements; 6 else 7 statements; 8,9 If (condition) 10 statements;11 else if (condition) 12 statements; 13 else 14 statements; 15 ,If|if-else|if else-if else PAN,If|if-else|if else-if else,PANFOT JAVA Developer,总是使用,避免如下格式,if (condi

22、tion) /非法的,应该以包括 statement;,If|if-else|if else-if else PAN,For语句,PANFOT JAVA Developer,具备如下 格式,for (initialization; condition; update) statements; ,For语句 PANFOT JAVA Developer具备如,While语句,PANFOT JAVA Developer,具备如下 格式,while (condition) statements; ,空的while语句应该具有如下格式,while (condition) ;,While语句 PANFOT

23、 JAVA Developer具,Do while语句,PANFOT JAVA Developer,具备如下格式,do statements; while (condition);,中间使用break可以跳出,Do while语句 PANFOT JAVA Develop,Switch语句,PANFOT JAVA Developer,具备如下格式,1 switch (condition) 2 case ABC:3 statements;4 /* falls through */5 case DEF:6 statements;7 break;8 case XYZ:9 statements;10 b

24、reak;11 default:12 statements;13 break;14 ,Switch语句 PANFOT JAVA Developer,try.catch,PANFOT JAVA Developer,具备如下格式,try statements; catch (ExceptionClass e) statements; finally statements; ,try.catch PANFOT JAVA Develope,空白 |空行,PANFOT JAVA Developer,两空行|一个源文件的两个片段(section)之间|类声明和接口声明之间 单空行|两个方法之间 |方法内的

25、局部变量和方法的第一条语句之间 |块注释或单行注释之前 |一个方法内的两个逻辑段之间,空白 |空行PANFOT JAVA Developer两空行,空白 |空格,PANFOT JAVA Developer,紧跟着括号的关键字|应该被空格分开位于|参数列表中逗号的后面 所有的二元运算符|除了“.”,应该使用空格将之与操作数分开 for语句|表达式应该被空格分开 强制转型|应该跟一个空格,空白 |空格PANFOT JAVA Developer紧跟着,空白 |空格,PANFOT JAVA Developer,1 a += c + d;2 a = (a + b) / (c * d);3 while (

26、d+ = s+) 4 n+;5 6 printSize(size is + foo + n); 7 for (expr1; expr2; expr3)8 myMethod(byte) aNum, (Object) x);9 myMethod(int) (cp + 5), (int) (i + 3) + 1);,空白 |空格PANFOT JAVA Developer1,变量赋值,PANFOT JAVA Developer,1 ooBar.fChar = barFoo.lchar = c; / 禁止此种方法 2 if (c+ = d+) / AVOID! (Java disallows) . 3

27、/应该写成 4 if (c+ = d+) != 0) . 5 ,避免|一个语句中给多个变量赋相同的值 不要|将赋值运算符用在容易与相等关系运算符混淆的地方,变量赋值PANFOT JAVA Developer 1 o,变量赋值,PANFOT JAVA Developer,1 d = (a = b + c) + r; / AVOID /应该写成 2 a = b + c; 3 d = a + r;,不要|使用内嵌(embedded)赋值运算符试图提高运行时的效率。,变量赋值PANFOT JAVA Developer 1,返回值,PANFOT JAVA Developer,1 if (booleanE

28、xpression) 2 return true;3 else 4 return false;5 应该代之以如下方法:6 return booleanExpression;,设法让你的程序结构符合目的,1 if (condition) 2 return x;3 4 return y; 应该写做:5 return (condition ? x : y);,返回值 PANFOT JAVA Developer1 i,JAVA数据库访问规范,PANFOT JAVA Developer,JAVA数据库访问规范PANFOT JAVA Develop,JAVA数据库访问规范,PANFOT JAVA Deve

29、loper,重要|所有业务操作都会使用这些资源数据库资源|连接|会话|结果集 慎重地使用|否则会引起严重性能及稳定性问题,JAVA数据库访问规范 PANFOT JAVA Develo,访问准则,PANFOT JAVA Developer,框架提供|标准的获得与释放资源的方式 谁获得,谁必须负责释放 TRY|在try块外获得资源,在try块内使用/提交资源,在catch块内回滚资源,在finally块中释放资源 时间|当一次服务占用资源时间过长,建议分阶段使用事务|谁建立谁负责,要有明确的显式提交或回滚 自动提交状态|谁更改,谁恢复,访问准则 PANFOT JAVA Developer框架提供,

30、Connection使用示例,PANFOT JAVA Developer,1 JResponseObject RO = new JResponseObject();/获得一个可用连接,这个连接可能获取不到。2 JConnection conn = 3 (JConnection) JActiveDComDM.AbstractDataActiveFramework.InvokeObjectMethod(4 DBManagerObject, GetDBConnection, Param);/因此,这里要判断一下。5 if ( conn = null ) /如果是无效连接,要返回错误信息。6 RO.E

31、rrorCode = -1;7 RO.ErrorString = 无法获得数据库连接;8 return RO;9 ,Connection使用示例 PANFOT JAVA Dev,Connection使用示例,PANFOT JAVA Developer,1 try 2 DBOFormService.3 SQLQuery(conn,msgInput.asStringValue(SqlText,),IE.getResultMessage(); /根据需要,返回对象类型的结果。4 RO.ResponseObject = IE;5 catch (Exception E) /发生异常时,要把异常信息返回。

32、6 RO.ErrorCode = -1;7 RO.ErrorString = E.getMessage();8 9 finally /finally里执行连接的关闭操作。10 conn.close();11 12 return RO;,Connection使用示例 PANFOT JAVA Dev,Statement & ResultSet,PANFOT JAVA Developer,1 Statement pSession = null;2 ResultSet pRS = null;3 pSession = conn. createStatement();4 String pSql = “SE

33、LECT * FROM LSCONF WHERE 1 = 1 ”;5 try6 pRS = pSession. executeQuery (pSql);7 if ( pRS.next()8 /这里是逻辑代码。用来取数。9 10 11 catch(Exception E)12 /这里是一个异常,需要把异常信息想法通知调用者。可以使用throw 抛出。13 ,Statement & ResultSetPANFOT JA,Statement & ResultSet,PANFOT JAVA Developer,1 finally 2 try 3 /清理操作。 4 if ( pRS != null )

34、5 pRS.close(); 6 7 if ( pSession != null ) 8 pSession.close(); 9 10 11 catch(Exception EE) 12 /这里可能也有异常,不需要抛出。 13 14 ,Statement & ResultSetPANFOT JA,按钮,PANFOT JAVA Developer,按钮|高度设为23|宽度缺省|缺省设置图标,按钮PANFOT JAVA Developer按钮|高度设为,图标,PANFOT JAVA Developer,细节|16*16|透明底色|.gif|位置|com.eai.resources.icons 装入

35、|gif|TImages.getIcon(String pIconId)装入|png|TImages.getIconp(String pIconId),图标PANFOT JAVA Developer细节|16*1,动作响应,PANFOT JAVA Developer,避免|addActionListener |actionPerformed 不可再用优先|使用IAction机制,动作响应PANFOT JAVA Developer避免|ad,动作响应,PANFOT JAVA Developer,1 IAction mActStop = TAction.Create(STOP, 停止,S,this

36、,onStop,SYS_STOP); 2 JButton btStop = new JButton(“”); 3 btStop.setAction(mActStop); 4 public boolean onStop(IAction pAct,ActionEvent pEvt) 5 return true; /这里即是处理代码。 6 7 JMenuItem pMM = new JMenuItem(); 8 pMM.setAction(mActStop);,动作响应PANFOT JAVA Developer 1,标准化动作库,PANFOT JAVA Developer,避免|再构造新的标准化的动

37、作优先|TCmdMaker 提供的标准动作,标准化动作库PANFOT JAVA Developer避免|,数据显示风格,PANFOT JAVA Developer,对齐方式|文本居左|数值居右|日期/复选框居中 |可预见等长的字符也可居中操作风格|尽量选用易于用户操作的操作风格 宽度|尽量与数据实际宽度一致。名称类15-20/数值类10亿精度|数值列,要根据系统中定义的精度,设置列精度,数据显示风格PANFOT JAVA Developer对齐方,常用工具:浮点计算,PANFOT JAVA Developer,NumberFunction通用类四舍五入|NumberFunction. roun

38、d(double anumber,int place) 大小比较|CmpDouble(double d1,double d2,int dec),常用工具:浮点计算PANFOT JAVA Developer,常用工具:字符串,PANFOT JAVA Developer,连加处理|使用StringBuffer代替String组合处理|使用TString类进行组合,1 public static String F(String pStringFormat,String P1)2 public static String F(String pStringFormat,String P1,String

39、P2)3 public static String F(String pStringFormat,String P1,String P2,String P3)4 public static String F(String pStringFormat,String P1,String P2,String P3,String P4)5 public static String F(String pStringFormat,String P1,String P2,String P3,String P4,String P5)6 String pData = TString.F(科目%s不存在!;,”1

40、001”);,常用工具:字符串PANFOT JAVA Developer连,常用工具:XML,PANFOT JAVA Developer,处理引擎|通常情况下,使用XmlEngine处理XML好处|隐藏了xml细节,代码易移值,常用工具:XMLPANFOT JAVA Developer处,让规范成为一种习惯!,PANFOT JAVA Developer,减少低级错误|这些低级错误经常出现提高可维护性|别人维护代码时提供方便降低维护成本|维护成本降低,这对公司非常重要自我价值提升|遵守良好规范|具有创造性的人才,让规范成为一种习惯!PANFOT JAVA Develope,普联软件(中国)有限公司2011年度入职培训,济南燕山学院,PANSOFT,JULY,2011,编码规范(JAVA版),本次课程结束!,Technology Team Progress,普联软件(中国)有限公司PANSOFTJULY,2011编码,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号