Java开发规范_第1页
Java开发规范_第2页
Java开发规范_第3页
Java开发规范_第4页
Java开发规范_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、培训纲要培训纲要前言概述前言概述1WEB规范规范2Java规范规范3数据库规范数据库规范45基本概念基本概念v开发规范 在软件开发过程中,为了让开发人员间便于交流和协作,并起到“指导开发”和“规范开发”作用的条文。从软件工程的项目生命周期而言,开发过程主要涉及设计和编码两个过程域。v编码规范 系统编码过程中,项目工程所涉及到的文件内容编辑的代码规则。范围定义范围定义v开发规范 开发规范涉及范围较广,编码规范最为核心。除此之外的规范有:设计规范、开发环境、部署环境、内部软件平台或软件成品使用以及项目管理涉及的相关规约。v编码规范 针对公司主要是WEB项目的特点,编码规范涉及的范围有:WEB规范、

2、Java规范、数据库规范培训纲要培训纲要前言概述前言概述1WEB规范规范2Java规范规范3数据库规范数据库规范45WEB规范规范v目录结构v命名v注释vUIv代码目录结构目录结构 根目录有images、script、style、WEB-INF四个目录以外,可创建如:platform(业务平台)、skyflow(工作流)公司复用产品文件夹等。(执行) 根目录中可创建项目应用目录,应用目录下可逐级创建子系统、功能模块的文件夹,最好不要超过3层。(建议) 根目录中,项目组研发人员对项目应用目录有权限修改,其他目录不允许修改。(执行) 项目应用目录下的子系统、功能模块目录不能让研发人员随意修改,由项

3、目经理或分配专人统一设计。(建议)命名规范命名规范v文件夹 英文或中文首字母来表达目录的“作用”或“功能”,推荐采用英文较为规范。(建议)v文件 除特定的页面之外,如index.jsp,一般采用“作用”或“功能”+“名词”和“作用”或“功能”+“动词”;也可以在两者之间添加下划线“_”。(建议) 文件命名与目录一样,统一使用小写字母。如:draft_do.jsp。如不使用下划线,单词连接首字母要大写,如:draftDo.jsp(执行)命名规范命名规范v标签、样式(待补充)v脚本 “方法”命名采用“动词”或“动宾”结构,多个单词之间可添加下划线“_”或单词连接首字母要大写;脚本命名统一使用小写字

4、母。举例来说,“动词”命名,如:trim(str)、save();“动宾”结构命名,如:send_mail()、openPage()、isNumber()(执行) “内部变量与参数”命名采用“名字”来命名。多个单词之间可添加下划线“_”或单词连接首字母要大写。举例:var windowWidth; var file_size(执行)注释规范注释规范v文件 文件代码顶部必须存在一个基本描述注释,包含文件名、功能描述、参数列表和历史修改信息。(执行) Jsp文件的HTML代码中,如需添加HTML注释的,自行定义注释格式,简洁就好。HTML注释:(建议)v脚本 方法注释在方法体头部添加注释说明,主要

5、描述脚本方法的功能和参数。(执行) 变量注释在方法体内部定义变量时进行说明,临时变量可不注释。(建议) 脚本块注释在脚本方法体内部存在if-else、循环语句和特定的功能代码块需要增加注释。(执行)UI规范规范v样式 应根据客户需求委托美工设计页面样式,页面样式提交给项目组,项目组不允许随便添加CSS样式。(执行)v布局功能按钮在页面位置以及样式要一致,尤其按钮的大小和背景颜色(客户特别要求的除外)。(执行)常规页面,如:检索页面、列表页面、编辑页面,页面中表格大小、表格线条样式、form表单中元素样式以及排版要一致。(建议)列表页面各列表项的数据信息是“居中”还是“居左”要统一设计,同类的列

6、展现方式保持一致;form表单内的各数据项必填标识要一致(执行)常规功能模块中,编辑页面的表格宽度一般设置为“640”。高度推荐控制在一屏之内。(建议)代码规范代码规范v排版 Jsp代码中Java代码的“”要顶头写。(执行) 脚本代码同一层级需要对齐;子代码应该在父代码后换行缩进,缩进宽度统一为4个空格。(执行)v表单校验 校验内容:必填数据项、逻辑数据项、数据项长度。与业务无关的复用脚本函数必须统一,不允许开发人员随意添加修改。如:判断身份证号、数字、不为空等。(执行)v操作提示 项目经理要统一定义各类操作提示(推荐使用配置文件或宏定义方式统一管理,在操作提示时统一调用)。(执行)培训纲要培

7、训纲要前言概述前言概述1WEB规范规范2Java规范规范3数据库规范数据库规范45Java规范规范v目录结构v排版v命名v注释v声明v类、接口v函数v表达式、语句v性能与安全目录结构目录结构 根目录下存在的包基本有:基本包、配置文件包、开源包。项目中,公用或平台配置文件一律在配置文件包下创建;项目中的包、类、文件在基本包下创建。(执行) 基本包:com.skytech;配置文件包:config;开源包:按照开源产品默认的包路径。(执行) 项目的包按如下规则组成:基本包.项目.模块.子模块。在基本包下,除了项目包外,还允许创建公司自研、重用整理的成品包,如:业务平台包(platform)、工作流

8、引擎(easyflow)、通用工具类包(common、tools、util、web)。(执行)排版规范排版规范v缩进 子代码块应当在父代码块后进行缩进;缩进宽度统一设置为4个空格。(执行) 子代码块层级太多导致缩进太深时将代码块提取出来创建子函数 。(建议)v长度 单个函数的行数一般控制在150行以内;过长时将抽取创建子函数。(建议) 单个类的长度包括注释不超过1500行;多长时应考虑重构其他类。(建议)排版规范排版规范v行宽 编码的行宽在80-120之间,Sun Java开发规范(版本2.0alpha)规定行宽为80。(建议)v间隔 方法及功能块间需空行间隔,但不允许出现大片空行;操作符两端

9、应当各空一个字符。(执行)v对齐 同一层级编码需对齐,编码换行需对齐。(执行)v括号 中的语句应该单独作为一行,左括号当紧跟其语句后,右括号永远单独作为一行且与其匹配行对齐。(执行)命名规范命名规范v包 包一般采用项目名或模块名来命名,少用英文缩写和过长名称,包名一律小写。(执行)v类、接口 类、接口一般采用能确切描述该类、接口含义或功能、作用的单词来命名,一般采用名词。所有单词首字母大写; 接口类命名添加前缀“I”,抽象类添加前缀“Abstract”,接口实现类、抽象继承类添加后缀“Impl”;异常类名由表示该异常类型的单词+Exception组成,如:SQLException。(执行)命名

10、规范命名规范v成员/变量 常量命名采用大写字母,多个单词之间添加下划线“_”如:MAX_NUM。(执行) 对不易识别变量类型的变量应添加类型缩写作其前缀,如:字符串型strXXX,布尔型isXXX、hasXXX等。(建议) 变量命名有多个单词时,除第一个单词外,其余单词首字母大写。(执行) 对私有实例变量可添加“_”前缀,但在其存取方法中则应该将其前缀去掉。(建议) 集合命名应采用完整的英文描述符,名字中所有非开头的单词的第一个字母应大写,适当使用集合后缀。(建议) 命名时应使用复数来表示它们代表多值,如:userNames(建议)命名规范命名规范v函数 除构造函数采用类名外,一般函数用“动宾

11、”结构来命名,如get、set函数,以及判断类函数添加is(has)前缀或直接采用动词来命名,如:save()、update()。(执行)注释规范注释规范v包 在源码相应包路径下建立package.xml以描述包的功能作用等。(建议)v类、接口 类、接口注释信息要包含文件名、功能描述、作者、版本、版权信息以及修改记录。(执行)v函数 对函数进行注释,需明确该函数功能作用、各参数含义以及返回值等。(执行) 参数注释时当注明其取值范围等;返回值当注释出失败、错误、异常时的返回情况。(建议)注释规范注释规范v成员/变量 类中的常量或不变量都要给出注释;应对重要的变量加以注释,注释信息一般需说明作用或

12、目的。(执行) 常量或不变量采用行尾注释;重要变量采用单行注释。(执行) 在同一代码块或同一局部的多个常量或变量的定义时,注意行尾注释要对齐。(建议)注释规范注释规范v代码块 代码块注释信息一般要包含代码作用或功能描述、作者和时间,有的注释还包含代码块的原因以及修改历史等;代码块一般采用的块注释(多行注释)。(建议) 代码块行数较多时,一般通过块注释 + 单行注释来标注代码块,在块注释结束行换行添加单行注释标注代码块的开始,在代码块的结束处换行添加单行注释标注代码块的结束。(建议) 较长的代码块的右括号后应使用/end .等标识其结束,如: if-else块结束:/end if userId

13、is not null;循环快结束:/end for userList(建议)声明规范声明规范v包 在导入包时要直接导入使用类的名字,尽量少用通配符的方式,如导入一些通用包且用到一个包下大部分类时,则可是使用通配符方式。(建议)v类、接口 定义语法规范:可见性(abstract|final) Class|Interface class_name (extends|implements)父类或接口名。(执行)声明规范声明规范v函数 尽量限制成员函数的可见性。如果成员函数没必要公有(public),就定义为保护(protected);没必要保护(protected),就定义为私有(private)

14、。(建议) 定义语法规范:可见性(abstract|final) synchronized返回值类型 method_name(参数列表)(throws)异常列表 (执行) 声明顺序:构造函数 静态公共函数 静态私有函数 受保护函数。若有toString(),equals(),hashCode(),colone()等重载Object的函数放在类的最后。(建议)声明规范声明规范v成员/变量 定义语法规范:(public|private|protected) (final|volatile)statictransient data_type field_name = expression ;(执行)

15、 若没有足够理,不要把实例或类变量声明为公有。通常,实例变量无需显式的设置(set)和获取(get)。(建议) 局部变量所取的名字,不可与另一个更大范围内定义的变量的名字相同(或相似)。(执行) 一行代码只声明一个变量,仅将一个变量用于一件事。(执行) 声明顺序:常量 类变量 实例变量 公有字段 受保护字段 私有字段。(建议)类、接口类、接口 多使用设计模式,方便重构;多个类中使用相同方法时将其方法提到一个接口中或使用抽象类,尽量提高重用度。(建议) 将不希望再被继承的类声明成final,例如某些实用类,但不要滥用final,否则会对系统的可扩展性造成影响。(建议) 被实例化的类的缺省构造函数

16、不可声明成private。(执行)函函 数数v基本原则 一个函数只完成一项功能,尽量缩小其可见性。(建议) 避免用一个类是实例去访问其静态变量和函数;避免在一个方法里提供多个出口(只允许一个return) 。(执行)v参数/返回值 避免过多的参数,应控制在5个以内,若需传递多个参数时,用一个容纳这些参数的对象进行传递; (建议) 参数和返回值类型接口化,屏蔽具体的实现细节。(执行)v异常 异常处理时应考虑错误状态返回值。(建议)表达式与语句表达式与语句v基本原则 每行至多包含一条执行语句,过长当换行。(建议) 避免在构造函数中执行大量耗时的初始化工作,如果不可避免,则当使用对象池和Cache等

17、技术提高系统性能;避免在一个语句中给多个变量赋相同的值;不要使用内嵌(embedded)赋值运算符试图提高运行时的效率(执行) 尽量在声明局部变量的同时初始化;在含有多种运算符的表达式中使用圆括号来避免运算符优先级问题(建议)v返回语句 一个带返回值的return语句不使用小括号“()”,除非它们以某种方式使返回值更为显见。(执行)表达式与语句表达式与语句vif-else语句 所有if语句必须用包括起来,即便是只有一句。(执行) 过多的else分句转成switch语句或使用子函数。(建议)v循环语句 当在for语句的初始化或更新子句中使用逗号时,避免因使用三个以上变量,而导致复杂度提高。(执行

18、) 循环中必须有终止循环的条件或语句,避免死循环。(执行) 尽量避免在其中调用耗时或费资源的操作。(建议)性能与安全性能与安全v字符串 如字符串必须不断地在其后添加许多字符来完成构造,应使用StringBuffer对象和它的append()方法,当工作完成后将StringBuffer对象再转换为需要的String对象。(建议)v对象 避免在循环中频繁构建和释放对象;不再使用的对象应及时销毁;如无必要,不要序列化对象。(建议)性能与安全性能与安全v同步 在不需要同步操作时避免使用同步操作类,如能使用ArrayList时不要使用Vector。(执行) 尽量少用同步方法,避免使用太多的 synchr

19、onized 关键字;尽量将同步最小化,即将同步作用到最需要的地方。(建议)v垃圾回收 IO操作时,输出流创建后需关闭;数据库连接时,结果集和数据连接对象需关闭;(执行)培训纲要培训纲要前言概述前言概述1WEB规范规范2Java规范规范3数据库规范数据库规范45数据库规范数据库规范v命名vSQL语句v存储过程v设计v维护命名规范命名规范v总则 所有名称的字符范围为:A-Z, a-z, 0-9 和_(下划线)。不允许使用其他字符作为名称。(执行) 采用英文单词或英文短语(包括缩写)作为名称,不能使用无意义的字符或汉语拼音。(执行)v表 表名以代表表内内容的一个和多个名词组成;一些作为多对多连接的

20、表,可以使用两个表的前缀作为表名;(执行) 使用表的业务名称作为表名的前缀;为了方便数据库的维护,对项目引用的成品涉及的表可添加前缀。(建议)命名规范命名规范v字段 字段不使用任何前缀。(执行) 字典名也避免采用过于普遍过于简单的名称;布尔型的字段,以一些助动词开头,更加直接生动。(建议) 多个单词的字段名,Oracle默认大写,可在单词间添加下划线。(建议)SQL语句语句 避免使用SELECT * FROM ,必须指明需要读取的具体字段;所有的SQL关键字大写 。(建议) 避免在一行内写太长的SQL语句,在SQL关键字的地方将SQL语句分成多行会更加清晰。(建议) 通过SQL访问数据库,尤其

21、针对较复杂的数据库业务逻辑时,尽量多编写存储过程,应用程序通过调用存储过程来访问数据库。(建议) 在一些块形式的SQL语句中,就算只有一行代码,也要加上BEGINEND块。(执行) SQL批处理语句的空行和缩进与结构化程序语言一致,应该保持良好的代码格式。(建议)存储过程存储过程 存储过程开发不区分大小写,为了便于维护和开发不能出现既有大写也有小写的情况,统一使用小写。(执行) 在存储过程头上要添加注释,说明存储过程具体功能,以及简单的描述,同时要书写开发日期,和作者。(执行) 业务模块命名:(项目名_模块名_功能名),公共模块的命名:(项目名_功能名,或者直接以功能名命名)。(建议) 传入参

22、数必须对每个参数进行注释,详细描述其作用和用途,返回值也要详细描述其含义和目的。(执行) 变量命名要合理明了,不要使用汉语拼音作为变量名,变量类型要合理,符合开发需求,同时长度要合理。(建议) SQL对齐和缩进可参考Java编码规范。(建议) 逻辑开发代码需要有注释说明,重要的判断,执行sql等等都需要加上注释。(执行)存储过程存储过程 调用其他存储过程时要说明调用原因和返回结果,做好异常处理和注释书写。(建议) 时刻需要关心数据安全和数据量的大小;在大批量数据处理时候要注意效率和稳定性;频繁使用的sql尽量使用动态sql执行;删除数据使用truncate代替delete。(建议) 游标的使用:使用前一定要先行定义再使用,使用完后一定要关闭游标。(执行) 异常代码的书写,做一些必要的判断,不能将异常抛出给数据库;Exception的异

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论