JAVA编码规范(开发培训讲义).ppt

上传人:tian****1990 文档编号:8087528 上传时间:2020-03-27 格式:PPT 页数:70 大小:908.05KB
返回 下载 相关 举报
JAVA编码规范(开发培训讲义).ppt_第1页
第1页 / 共70页
JAVA编码规范(开发培训讲义).ppt_第2页
第2页 / 共70页
JAVA编码规范(开发培训讲义).ppt_第3页
第3页 / 共70页
点击查看更多>>
资源描述
Lishoulin PTC 普联软件 中国 有限公司2011年度入职培训 济南燕山学院 PANSOFT JULY 2011 编码规范 JAVA版 JAVA之路JAVA开发人员编码规范 TechnologyTeamProgress 编码规范的必要性 你自己 编码规范对于程序员自己而言尤为重要其它人 几乎没有一个软件 在其整个生命周期中 均由最初的开发人员来维护 其它的人能看懂你的代码吗 生命周期 80 的花费在于维护可读性 编码规范可以改善软件的可读性代码理解 有助于尽快而彻底地理解新的代码团队协作 必不可少的规范正确率 保证正确率 规避低级的错误 PANFOTJAVADeveloper 规范的实施 原则 参照规范 注重实践 从点滴做起范围 全体使用JAVA开发的编码人员 设计人员时机 开发软件项目 产品的任何时间检查 项目组内部检查 公司专门人员抽查修改或升级 专门小组负责 PANFOTJAVADeveloper 主要内容 JAVA代码编写规范数据库访问规范操作界面设计规范常用工具 PANFOTJAVADeveloper JAVA代码编写规范 PANFOTJAVADeveloper 文件组织 文件名 java class文件组织 单个源文件长度控制在2000行 PANFOTJAVADeveloper 包与类 接口命名 包 全部小写 com 公司名 产品名 模块名类 名词 大小写混合 简洁而完整 首字符使用J或者T接口 大小写混合 简洁而完整 首字符使用I PANFOTJAVADeveloper com pansoft financecom pansoft publicclassJRaster classJImageSpriteinterfaceIRasterDelegate interfaceIStoring 方法命名 方法 动词 大小写混合 首字母小写 其后单词首字母大写 PANFOTJAVADeveloper run runFast getBackground 变量命名 大小写混合 首字母小写 后面单词首字母大写不应使用下划线名称应简短而富描述性 便于记忆避免单字母变量名 除非 临时变量i j k m n一般用于整型临时变量c d e一般用于字符型临时变量 PANFOTJAVADeveloper charc inti floatmyWidth 成员变量 和变量名相似前面加m PANFOTJAVADeveloper intmEmployeeId StringmName CustomermCustomer 实参变量 大小写规则和变量名相似前面需要加一个p PANFOTJAVADeveloper publicvoidcallMe intpAge StringpName 常量 全部大写单词间用下划线隔开 PANFOTJAVADeveloper staticfinalintMIN WIDTH 4 staticfinalintMAX WIDTH 999 staticfinalintGET THE CPU 1 开头注释 开头有一个C语言风格的注释列出类名 版本信息 日期 版权 PANFOTJAVADeveloper Classname Versioninformation Date Copyrightnotice 包和引入语句 第一个非注释行是包语句之后可以跟引入语句 PANFOTJAVADeveloper packagejava awt importjava awt peer CanvasPeer 类 接口定义 类 接口注释类的 静态 变量实例变量构造器方法 PANFOTJAVADeveloper 静态变量 首先是类的公共变量随后是保护变量再后是包一级别的变量最后是私有变量 PANFOTJAVADeveloper 实例变量 首先是公共级别随后是保护级别的再后是包一级别的最后是私有级别的 PANFOTJAVADeveloper 方法 该按功能分组布局非按访问区域分组为了更便于阅读和理解代码 PANFOTJAVADeveloper 缩进 4个空格为一个缩进单位JBuilder缺省2个可更改 Eclipse可设置 PANFOTJAVADeveloper 行长度 避免一行超过80字符 PANFOTJAVADeveloper 换行 断行原则 在一个逗号后面断开在一个操作符前面断开宁可选择较高级别 higher level 的断开 而非较低级别 lower level 的断开新的一行应该与上一行同一级别表达式的开头处对齐 PANFOTJAVADeveloper 换行 断行原则 在一个逗号后面断开在一个操作符前面断开宁可选择较高级别 higher level 的断开 而非较低级别 lower level 的断开新的一行应该与上一行同一级别表达式的开头处对齐缩进后若使第二行和第三行移得很靠右 可以代之以缩进8个空格 PANFOTJAVADeveloper 换行 断行原则 PANFOTJAVADeveloper 正常断行someMethod intanArg ObjectanotherArg StringyetAnotherArg ObjectandStillAnother 若断行后很靠右 则下面行可以缩进8个空格 看上去更美观 privatestaticsynchronizedhorkingLongMethodName intanArg ObjectanotherArg StringyetAnotherArg ObjectandStillAnother IF语句断行 PANFOTJAVADeveloper 缩小过少 不易阅读1if condition1 通常使用8个缩进 看起来清晰 三元运算符 PANFOTJAVADeveloper 1alpha aLongBooleanExpression beta gamma 2alpha aLongBooleanExpression beta gamma 3alpha aLongBooleanExpression beta gamma 三种可行的方法 注释 PANFOTJAVADeveloper 实现注释 注释代码或者实现细节 使用 或 注释 与C 相同文档注释 Java独有 使用 表示 可转为HTML不应包括 制表符和回退符之类的特殊字符四种注释风格 块 单行 尾端 行末 块注释 PANFOTJAVADeveloper 目的 对文件 方法 数据结构和算法的描述位置 文件开始 方法之前 方法内部 块注释 PANFOTJAVADeveloper 首部有一空行 利于代码分隔可以以 开头 indent 1 就可以将之识别为一个代码块的开始 Hereisablockcomment 单行注释 PANFOTJAVADeveloper 短注释 可以显示在一行内 与其后的代码具有一样的缩进多于一行 不能在一行内写完 就该采用块注释 1if condition 2 Handlethecondition 3 code 4 尾端注释 PANFOTJAVADeveloper 极短的注释 可以与它们所要描述的代码位于同一行极短的注释共存 应该具有相同的缩进 1if a 2 2returnTRUE specialcase 3 else 4returnisPrime a worksonlyforodda 5 行末注释 PANFOTJAVADeveloper 三种风格 1if foo 1 2 Doadouble flip 3 4else 5 returnfalse Explainwhyhere 6 7 if bar 1 8 Doatriple flip 9 10 else 11 returnfalse 12 文档注释 PANFOTJAVADeveloper JAVA描述信息 类 接口 构造器 方法 以及字段注释定界符 位置 应位于声明之前 不能在其内部 TheExampleclassprovides publicclassExample 变量声明 个数 PANFOTJAVADeveloper 推荐一行一个声明 因为这样利于写注释不要 不同类型变量的声明不放在同一行 1intlevel indentationlevelintsize sizeoftable 这样不好3intlevel size 4intfoo fooarray 错误写法 变量声明 初始化 PANFOTJAVADeveloper 尽量 在声明局部变量的同时初始化或者 初始值依赖于某些先前发生的计算 可不初始化 变量声明 布局 PANFOTJAVADeveloper 只在 代码块的开始处声明变量不要 首次用到该变量时才声明之 for循环例外避免 声明的局部变量覆盖上一级声明的变量 1voidmyMethod 2intint1 0 好的声明3if condition 4intint2 0 不好的声时5 6 7 类与接口声明 PANFOTJAVADeveloper 方法名与其参数列表之前的左括号 间不要有空格左大括号 位于声明语句同行的末尾右大括号 另起一行除非是一个空语句方法与方法之间以空行分隔 1classSampleextendsObject 2intivar1 3intivar2 4Sample inti intj 5ivar1 i 6ivar2 j 7 8intemptyMethod 9 10 简单语句 PANFOTJAVADeveloper 每行至多包含一条语句 1argv Correct2argc Correct3argv argc AVOID 复合语句 PANFOTJAVADeveloper 定义 包含在大括号中的语句序列缩进 被括其中的语句应该较之复合语句缩进一个层次左大括号 位于复合语句起始行的行尾 右大括号 另起一行并与复合语句首行对齐 1if this isExist 0001 2argc Correct3System out println HELLO 4 返回语句 PANFOTJAVADeveloper 带返回值时 return语句不使用小括号 除非 以某种方式使返回值更为显见 1 return 2 returnmyDisk size 3 return size size defaultSize If if else ifelse ifelse PANFOTJAVADeveloper 使用如下正确格式 1 if condition 2statements 3 4if condition 5statements 6 else 7statements 8 9If condition 10statements 11 elseif condition 12statements 13 else 14statements 15 If if else ifelse ifelse PANFOTJAVADeveloper 总是使用 避免如下格式 if condition 非法的 应该以 包括statement For语句 PANFOTJAVADeveloper 具备如下格式 for initialization condition update statements While语句 PANFOTJAVADeveloper 具备如下格式 while condition statements 空的while语句应该具有如下格式 while condition Dowhile语句 PANFOTJAVADeveloper 具备如下格式 do statements while condition 中间使用break可以跳出 Switch语句 PANFOTJAVADeveloper 具备如下格式 1switch condition 2caseABC 3statements 4 fallsthrough 5caseDEF 6statements 7break 8caseXYZ 9statements 10break 11default 12statements 13break 14 try catch PANFOTJAVADeveloper 具备如下格式 try statements catch ExceptionClasse statements finally statements 空白 空行 PANFOTJAVADeveloper 两空行 一个源文件的两个片段 section 之间 类声明和接口声明之间单空行 两个方法之间 方法内的局部变量和方法的第一条语句之间 块注释或单行注释之前 一个方法内的两个逻辑段之间 空白 空格 PANFOTJAVADeveloper 紧跟着括号的关键字 应该被空格分开位于 参数列表中逗号的后面所有的二元运算符 除了 应该使用空格将之与操作数分开for语句 表达式应该被空格分开强制转型 应该跟一个空格 空白 空格 PANFOTJAVADeveloper 1a c d 2a a b c d 3while d s 4n 5 6printSize sizeis foo n 7for expr1 expr2 expr3 8myMethod byte aNum Object x 9myMethod int cp 5 int i 3 1 变量赋值 PANFOTJAVADeveloper 1ooBar fChar barFoo lchar c 禁止此种方法2if c d AVOID Javadisallows 3 应该写成4if c d 0 5 避免 一个语句中给多个变量赋相同的值不要 将赋值运算符用在容易与相等关系运算符混淆的地方 变量赋值 PANFOTJAVADeveloper 1d a b c r AVOID 应该写成2a b c 3d a r 不要 使用内嵌 embedded 赋值运算符试图提高运行时的效率 返回值 PANFOTJAVADeveloper 1if booleanExpression 2returntrue 3 else 4returnfalse 5 应该代之以如下方法 6returnbooleanExpression 设法让你的程序结构符合目的 1if condition 2returnx 3 4returny 应该写做 5return condition x y JAVA数据库访问规范 PANFOTJAVADeveloper JAVA数据库访问规范 PANFOTJAVADeveloper 重要 所有业务操作都会使用这些资源数据库资源 连接 会话 结果集慎重地使用 否则会引起严重性能及稳定性问题 访问准则 PANFOTJAVADeveloper 框架提供 标准的获得与释放资源的方式谁获得 谁必须负责释放TRY 在try块外获得资源 在try块内使用 提交资源 在catch块内回滚资源 在finally块中释放资源时间 当一次服务占用资源时间过长 建议分阶段使用事务 谁建立谁负责 要有明确的显式提交或回滚自动提交状态 谁更改 谁恢复 Connection使用示例 PANFOTJAVADeveloper 1JResponseObjectRO newJResponseObject 获得一个可用连接 这个连接可能获取不到 2JConnectionconn 3 JConnection JActiveDComDM AbstractDataActiveFramework InvokeObjectMethod 4 DBManagerObject GetDBConnection Param 因此 这里要判断一下 5if conn null 如果是无效连接 要返回错误信息 6RO ErrorCode 1 7RO ErrorString 无法获得数据库连接 8returnRO 9 Connection使用示例 PANFOTJAVADeveloper 1try 2DBOFormService 3SQLQuery conn msgInput asStringValue SqlText IE getResultMessage 根据需要 返回对象类型的结果 4RO ResponseObject IE 5catch ExceptionE 发生异常时 要把异常信息返回 6RO ErrorCode 1 7RO ErrorString E getMessage 8 9finally finally里执行连接的关闭操作 10conn close 11 12returnRO Statement ResultSet PANFOTJAVADeveloper 1StatementpSession null 2ResultSetpRS null 3pSession conn createStatement 4StringpSql SELECT FROMLSCONFWHERE1 1 5try 6pRS pSession executeQuery pSql 7if pRS next 8 这里是逻辑代码 用来取数 9 10 11catch ExceptionE 12 这里是一个异常 需要把异常信息想法通知调用者 可以使用throw抛出 13 Statement ResultSet PANFOTJAVADeveloper 1finally 2try 3 清理操作 4if pRS null 5pRS close 6 7if pSession null 8pSession close 9 10 11catch ExceptionEE 12 这里可能也有异常 不需要抛出 13 14 按钮 PANFOTJAVADeveloper 按钮 高度设为23 宽度缺省 缺省设置图标 图标 PANFOTJAVADeveloper 细节 16 16 透明底色 gif 位置 com eai resources icons装入 gif TImages getIcon StringpIconId 装入 png TImages getIconp StringpIconId 动作响应 PANFOTJAVADeveloper 避免 addActionListener actionPerformed不可再用优先 使用IAction机制 动作响应 PANFOTJAVADeveloper 1IActionmActStop TAction Create STOP 停止 S this onStop SYS STOP 2JButtonbtStop newJButton 3btStop setAction mActStop 4publicbooleanonStop IActionpAct ActionEventpEvt 5returntrue 这里即是处理代码 6 7JMenuItempMM newJMenuItem 8pMM setAction mActStop 标准化动作库 PANFOTJAVADeveloper 避免 再构造新的标准化的动作优先 TCmdMaker提供的标准动作 数据显示风格 PANFOTJAVADeveloper 对齐方式 文本居左 数值居右 日期 复选框居中 可预见等长的字符也可居中操作风格 尽量选用易于用户操作的操作风格宽度 尽量与数据实际宽度一致 名称类15 20 数值类10亿精度 数值列 要根据系统中定义的精度 设置列精度 常用工具 浮点计算 PANFOTJAVADeveloper NumberFunction通用类四舍五入 NumberFunction round doubleanumber intplace 大小比较 CmpDouble doubled1 doubled2 intdec 常用工具 字符串 PANFOTJAVADeveloper 连加处理 使用StringBuffer代替String组合处理 使用TString类进行组合 1publicstaticStringF StringpStringFormat StringP1 2publicstaticStringF StringpStringFormat StringP1 StringP2 3publicstaticStringF StringpStringFormat StringP1 StringP2 StringP3 4publicstaticStringF StringpStringFormat StringP1 StringP2 StringP3 StringP4 5publicstaticStringF StringpStringFormat StringP1 StringP2 StringP3 StringP4 StringP5 6StringpData TString F 科目 s不存在 1001 常用工具 XML PANFOTJAVADeveloper 处理引擎 通常情况下 使用XmlEngine处理XML好处 隐藏了xml细节 代码易移值 让规范成为一种习惯 PANFOTJAVADeveloper 减少低级错误 这些低级错误经常出现提高可维护性 别人维护代码时提供方便降低维护成本 维护成本降低 这对公司非常重要自我价值提升 遵守良好规范 具有创造性的人才 普联软件 中国 有限公司2011年度入职培训 济南燕山学院 PANSOFT JULY 2011 编码规范 JAVA版 本次课程结束 TechnologyTeamProgress
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!