




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、(人力资源知识)某有限公司J编码规范20XX年XX月多年的企业咨询豉问经验.经过实战验证可以落地机行的卓越管理方案,值得您下载拥有Java编码规范修订历史记录日期版本说明作者审核人2011-7-110.0.1对Java代码风格、注释、命名、声明等规范进行描述黎建宁2011-8-50.0.2根据征询意见对Java编码规范进行修订黎建宁、冯彬杰、张史沛、李思行2011-8-160.0.3对规范中出现模糊定义的地方进行细化描述黎建宁2011-9-130.0.4根据编码的约定情况,对注释、声明部分进行了补充黎建宁、李思行2011-9-200.0.5对方法的声明顺序进行补充黎建宁、李思行壹简介i目的本规
2、范的目的是使开发人员以标准的、规范的方式编写代码,养成良好的编码风格和习惯,形成公司内部编码约定,提高程序的可读性,可维护性以及壹致性,同时减少项目组成员间技术沟通成本,提高团队开发效率。2范围1 、本文档基于Java1.5的语法描述编码规范。2 、本文档从代码风格、注释、命名、声明以及异常处理等五个方面对Java编码进行约定。3 、本规范适用于所有运用Java技术的软件项目、产品。4 、本规范适用的文件类型包括但不限于Java源文件、JSP文件、XML文件、HTML文件、JS文件以及AS文件。5 、本规范建议采用统壹的CodeStyle以及Formatter风格,通过IDE进行配置。3读者范
3、围1 、软件过程改进领导小组以及工作小组所有人员;2 、所有运用Java技术的软件项目、产品的关联领导、项目负责人、设计人员、开发人员以及测试人员。3 、所有涉及运用Java技术的软件项目、产品的关联人员。二代码风格1 缩进1 、使用空格代替Tab缩进,避免各种编辑器中见到不壹样的代码格式。【注:强制执行, Eclipse 可辅助排版】2 、代码按层级缩进,每层级缩进4个字符(对于特定格式文件,能够按照实际进行调整,如XML文件可缩进2个字符),所有“”块内容均应该进行缩进。【注:强制执行,Eclipse可辅助排版】参考例子:2 括号1、除数组的初始化定义外,“”中的语句应单独作为壹行。【注:
4、强制执行,Eclipse可辅助排版】2、左括号“”可根据开发习惯是否换行存放,如果换行存放,必须和其前导语句首字符对齐,右括号“”必须作为单独壹行存放且且和匹配行对齐(即左括号前导语句首字符)。【注:强制执行,Eclipse可辅助排版】3、于项目内部,相同类型的文件,其括号的风格必须统壹。【注:强制执行,Eclipse可辅助排版】参考例子:3 空格1 、操作符俩端必须带有空格符。【注:强制执行,Eclipse可辅助排版】参考例子:2、各且行元素(如函数参数)间以空格符隔开,空格符放于逗号后方。参考例子:【注:强制执行,Eclipse可辅助排版】3、无特别要求,括号“”、“”、“()”左右方尽量
5、不要增加无必要性的空格符。【注:强制执行,Eclipse可辅助排版】参考例子:4 空行1 、同壹个编译单元间(包定义、导入声明、类)应以空行相隔。参考例子:【注:强制执行,Eclipse可辅助排版】2、类定义内部各元素间(字段定义、方法)应以空行相隔。参考例子:【注:强制执行,Eclipse可辅助排版】3 、同壹方法内实现不同的功能之间应以空行相隔。【注:强制执行】4 、不能无理由出现大片空行。【注:强制执行】5 控制语句1、对于循环控制等元素块,不管是否带有body,均应该以包含。参考例子:【注:强制执行】6 行宽1 、每行代码尽量控制行宽于100字以内,当超出100字时候,代码应当进行缩进
6、。【注:非强制执行,属加分项】2 、方法的缩进应当保证参数对齐。【注:非强制执行,属加分项】参考例子:3 、对于过长的SQL/HQL语句,则采用关键字对齐方式,具体可通过PL/SQL等工具进行代码的格式化。【注:非强制执行,属加分项,附带sql规范壹且考核】7 类、函数1 、每个函数的代码长度应尽量控制于50行以内(不包含注释),如果函数功能过于庞大,可把独立的功能段单独抽取出来作为子函数。【注:非强制执行,属加分项】2、每个类的代码长度应尽量控制于1000行以内(不包含注释),如果类功能过于庞大,可通过组合的方式来分解类。【注:非强制执行,属加分项】三注释1 基本原则1 、注释目的于于增加代
7、码清晰度,使代码易于被其他开发人员理解。【注:强制执行】2 、保持注释简洁,禁止为了注释而注释。【注:强制执行】3、注释除带有代码功能外,仍应带有描述上下文意图,具体描述其原因。4、除变量定义等较短语句的注释可用行尾注释外,其他注释当避免使用行尾注释。5 、对描述较长的注释,应当使用HTML标记进行格式化,便于生成的JavaDoc易阅读和理解。【注:强制执行】2文件、包1 、文件、包头部应当带有注释,描述其功能、作用、作者、创建时间、修改历史等信息。【注:非强制执行,属加分项】参考例子:3 类、接口1 、对类、接口的注释应当符合JavaDoc规范。【注:强制执行】2 、类、接口定义必须标记功能
8、、作用、作者、时间。【注:强制执行】3、当代码基线定义后,后续维护中新增的方法或字段于类、接口声明头部中应当添加修订记录,注明时间、原因以及作者。【注:非强制执行,属加分项】参考例子:4 方法1 、对方法的注释应当符合JavaDoc规范。【注:强制执行】2 、方法定义应带有功能、作用、执行条件(如果有)、参数,对于复杂功能的方法,应当带有例子描述。【注:功能、作用、执行条件(如果有)、参数属强制执行;例子描述属非强制执行,属加分项】3、每个方法中含有的参数以及返回值应当描述其类型、作用、值的范围,对方法的影响。【注:强制执行】4 、当方法抛出自定义的受控异常(CheckedException,
9、不含工具、框架抛【注:强制出的异常)时,必须对异常产生的原因进行描述,便于调用者捕捉。执行】参考例子:5 、对规范中约定的方法,如回调方法、getter/setter方法,只要遵守其命令约定,均不需要编写注释。【注:非强制执行】参考例子:6、如果方法内部涉及复杂的算法、关键步骤或难以理解的语句,应当添加注释标明其含义。【注:非强制执行,属加分项】7、对于超过壹行注释,必须采用“/*/”进行标注,而单行注释可采用“/标注。【注:强制执行】5变量1 、全局变量、静态变量、类中的字段应当带有注释。【注:强制执行】参考例子:2 、对规范中约定的变量,如注入对象(如Service、DAO),通讯对象(如
10、RemoteObject),只要遵守其命令约定,均不需要编写注释。【注:非强制执行,属加分项】参考例子:3、对于方法内部产生的临时变量,应当尽量添加注释,标明其中的作用。四命名1 基本原则1 、文件,类,函数,变量,命名必须采用可准确表达其意义的英文单词。2 、命名不能和关键字相同。【注:强制执行】3、尽量避免使用出现误解的词汇。4 、不允许使用拼音命名,全部使用英文单词或缩写命名。【注:强制执行】2 文件、包1 、文件名第壹字母应大写。【注:强制执行】2 、文件名应尽量描述该文件作用。【注:非强制执行,但采用拼音命名需扣分】3 、文件名应使用名词或形容词名词。【注:强制执行】4 、包名壹般以
11、项目或模块名进行命名,采用小写。【注:强制执行】5 、包名组成规则基本包.项目名.模块名.子模块名.【注:强制执行】参考例子:6 、禁止把类直接定义于默认包下。以下行为必须禁止:【注:强制执行】3 类、接口1 、类、接口名第壹字母应大写。【注:强制执行】2 、类名应尽量描述该类作用。【注:强制执行】3 、类名应使用名词或形容词名词。【注:强制执行】4、如果需要用到多个单词表达其意义,每个单词第壹个字母必须用大写标识。【注:强制执行】参考例子:5 、类名不使用下划线。【注:强制执行】6、如果用到某些特定名词作为类名,应保持该特定名词,如“ADOHelper”【注:强制执行】7、接口的第壹个字母应
12、为“I”,其他命名规则和普通类名相同。【注:强制执行】8、对于DAO类,其命名规则为:名词+“DAO”,对于应用服务类,其命名规则为:名词+“Service”。【注:强制执行】9、如果类为持久类,需要和数据库表进行绑定的,其命名于忽略前缀以及下划线等特殊字符的情况下,应和数据库表名保持壹致。【注:强制执行】以下行为必须禁止:4 字段1 、字段名第壹字母应小写。【注:强制执行】2 、字段名应尽量描述该字段的作用。【注:强制执行】3 、字段名应使用名词或形容词名词。【注:强制执行】4、如果需要用到多个单词表达其意义,除第壹个字母外,每个单词第壹个字母必须用大写标识。【注:强制执行】5、如果字段所于
13、类为持久类,需要和数据库表进行绑定的,其命名于忽略前缀以及下划线等特殊字符的情况下,应和数据库字段名保持壹致。【注:强制执行】5方法1 、方法名第壹字母应小写。【注:强制执行】2 、方法名应尽量描述该方法的作用。【注:强制执行】3 、方法名应使用“动词名词”形式命名。【注:强制执行】4、如果需要用到多个单词表达其意义,除第壹个单词外,其他单词第壹个字母必须用大写标识。【注:强制执行】5 、对于常用的DAO查询方法,方法应当表明方法出处、数据的来源以及查询依据。如getOrderListByCustomer方法根据顾客获取订单列表,此方法由Order模块提供而不是Customer模块。【注:(1
14、)强制执行,但条件定义为非强制执行,即getOrderListByCustomer中的ByCustomer为非强制执行】6 、回调方法应使用“Callback”作为方法后缀,如非特殊回调方法,可采用“调用方法+Callback”命名规则,如login方法回调,其方法命名为loginCallback。【注:强制执行】7 、Flex各种事件,采用“on”作为方法前缀命名,如非特殊事件,可采用“on+方法名”命名规则,如createComplete事件中,其方法命名为onCreateComplete,如果存于多个相同的事件,采用“on+组件ID+方法名”命名规则。【注:强制执行】6变量1 、变量名第
15、壹字母应小写。【注:强制执行】2、变量名应尽量描述该变量的作用。3、变量名壹般使用“形容词名词”或单个名词,布尔变量应使用含有“判断意义的单词名词”,例如判断是否已关闭的变量:booleanisClosed,禁止声明类似aaa、bb无法定义、理解的变量。【注:强制执行】4、如果需要用到多个单词表达其意义,除第壹个单词外,其他单词第壹个字母必须用大写标识。【注:强制执行】5、用于for循环的局部变量可使用i等单个字母。【注:非强制执行】7 常量1 、常量名应尽量描述该常量的作用。【注:非强制执行,但采用拼音命名需扣分】2 、常量名壹般使用“形容词名词”或单个名词。【注:强制执行】3 、如果需要用
16、到多个单词表达其意义,单词间应通过“_”分割。【注:强制执行】参考例子:8 组件变量1 、组件变量符合变量命名规则。【注:强制执行】2 、组件变量名壹般采用组件前缀+变量名命名。【注:强制执行,表单内的组件变量非强制执行】3 、壹般情况下,组件前缀可采用组件缩写(见本章第9节Flex命名约定表)或全名表示,但对于过长的组件命名,建议采用缩写标识。(新增的必须执行)【注:强制执行,因考虑其对旧项目的改动性太大,故该考核只针对新增的代码模块其中Flex命名约定表里的组件若需要缩写标识,则必须是Flex命名约定表中对应的缩写标识】4、对于某些显示数据库字段的控件,其变量名应对应数据库字段名。【注:强
17、制执行】9附Flex命名约定表组件全名组件名称缩写Controls类:AdvancedDataGridadgAlertalButtonbtnCheckBoxchkColorPickercrpComboBoxcmbDataGriddgDateChooserdcDateFielddfHSliderhslHorizontalListhorlstImageimgLabellblLinkButtonlnkbtnListlstNumericSteppernsOLAPDataGridodgPopUpButtonpubPopUpMenuButtonpumbProgressBarprgRadioButtonrd
18、oRadioButtonGrouprdogRichTextEditorrtxSWFLoaderswflTexttxTextAreatxaTextInputtxiTileListtltTreetreVSlidervslVideoDisplayvdpLayout类:ApplicationControlBaracbCanvascvsControlBarctbFormfmFormHeadingfmhGridgdHBoxhbHDividedBoxhdbHrulehrModuleLoadermdlPanelpnlSpacerspcTiletilTitleWindowtilwVBoxvbVDividedBo
19、xvdbVRulevrNavigators类:AccordionaodButtonBarbtnbLinkBarlkbrMenuBarmnbTabBartabTabNavigatortbnToggleButtonBartbbViewStackvskCharts类:AreaChartarecBarChartbarcBubbleChartbubcCandlestickChartcancColumnChartcolcHLOCCharthloccLegendlgdLineChartlincPieChartpiecPlotChart自定义组件ploc根据基础组件进行自定义组合注意:基于约定优于配置原则,若
20、规范中定义的命名规则和组件约定的规则存于冲突,以组件约定的规则为优先参考例子:五声明1 类、接口1 、可见性必须显式声明。【注:强制执行】2 方法1 、可见性必须显示声明。【注:强制执行】2、尽可能减少类和类之间耦合,尽量限制成员函数的可见性(不要扩大其可见范围)。【注:非强制执行,属加分项】3 、如果存于多个参数,按照功能的相似性,应放到壹齐。【注:强制执行】4 、对于同样可见性的方法,按照功能的相似性,应放到壹齐。(如as中应当将事件、回调方法、引用方法区分存放)。【注:强制执行】5 、对于重载的方法,按参数的个数,从少到多排序。【注:强制执行】6、方法按照其属性以及可见性,按以下顺序排序:构造方法、静态公共方法、静态私有方法、受保护方法、私有方法、以及继承自Object的方法(as代码按照实际情况进行调整)。【注:强制执行】7 、方法的声明顺序按照以下优先级声明:功能相似性-可见性-参数个数列子:publicvoidsaveUser(Useruser)publicvoidsaveUser(Useruser,LongorgId)publ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子出版物用户反馈与产品改进考核试卷
- 生物质成型燃料的颗粒品质与燃烧性能关系考核试卷
- 水下作业的深海生物资源调查研究新发现考核试卷
- 2025年公共政策与管理考试试卷及答案概览
- 2025年社会心理学专业研究生入学考试试卷及答案
- 2025年舞蹈专业艺考试卷及答案
- 2025年土木工程技术职称考试试题及答案
- 互联网金融平台资金存管服务协议
- 固体废弃物处理设施建设项目监理合同
- 网络游戏内容合规性审查与游戏版本更新合同
- 机器学习与非线性方程-深度研究
- 骆驼祥子-(一)-剧本
- 2023年小学科学实验知识竞赛试题库含答案
- 沪科版数学八年级下册第三次月考试卷含答案
- 水利部批准发布7项水利行业标准
- 淮安村干部考试试题
- 《用友渠道政策》课件
- 智联招聘 职业测评题库及答案大全
- 公安机关涉案财物管理
- 疲劳基础知识介绍
- 文化产品创意与策划-终结性考核-国开(SC)-参考资料
评论
0/150
提交评论