2020(项目管理)J项目组开发规范

上传人:精****库 文档编号:134627344 上传时间:2020-06-07 格式:DOC 页数:34 大小:386.65KB
返回 下载 相关 举报
2020(项目管理)J项目组开发规范_第1页
第1页 / 共34页
2020(项目管理)J项目组开发规范_第2页
第2页 / 共34页
2020(项目管理)J项目组开发规范_第3页
第3页 / 共34页
2020(项目管理)J项目组开发规范_第4页
第4页 / 共34页
2020(项目管理)J项目组开发规范_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《2020(项目管理)J项目组开发规范》由会员分享,可在线阅读,更多相关《2020(项目管理)J项目组开发规范(34页珍藏版)》请在金锄头文库上搜索。

1、(项目管理)J项目组开发规范目 录第一章 概述21.1 编写目的21.2 面向读者21.3 名词解释2第二章 程序结构32.1 包结构32.2 相关类3第三章 JAVA规范53.1 核心原则53.2 命名规范53.2.1 包、类和接口53.2.2 方法53.2.3 变量63.2.4 常量73.3 代码结构73.3.1 缩进73.3.2 行宽83.3.3 换行83.3.4 长度103.3.5 括号103.3.6 注释113.3.7 声明133.3.8 语句143.4 异常处理183.5 其他规范19第四章 JSP规范204.1 JSP文件名命名规则204.2 JSP头格式204.3 JSP页面中

2、按钮的快捷键214.4 SERVLET命名规则214.5 HTML格式224.6 web.xml书写规范224.7 其他规范22第五章 数据库规范245.1 命名规则245.1.1 基本规则245.1.2 常用名称245.2 数据类型255.2.1 基本规则255.2.2 常用类型255.3 SQL语句255.4 注释规则265.5 JDBC操作265.6 优化规则265.7 注意事项27第一章 概述1.1 编写目的为规范FSOP项目的开发实施工作,特制定本规范。为了提高软件开发质量,降低开发周期,增强代码的可重用性和易读性,使软件便于维护,开发人员间便于交流和协作,特总结出开发规范,以为参考

3、。1.2 面向读者从事FSOP项目的开发、实施工作的相关人员。1.3 名词解释本节对手册中涉及到的术语进行简单描述。第二章 程序结构2.1 包结构项目中的所有代码,必须符合如下的结构:1、各子系统的模块:com.icss.fsop.subsys.module.servlet.xxSmon.util.xxUmon.hander.xxHmon.sql.xxSmon.entity.xxxx其中subsys是子系统的名称,module是模块的名称,xxServlet和xxHandler是模块下面的Servlet和Handler,允许有多个Servlet和Handler同时存在,建议同一个模块下,用多套

4、Servlet和Handler处理不同的业务对象;util存放该模块专用的类;package/class可以任意级别的包或者类;2、子系统之外的模块:com.icss.fsop.sm.module.servlet.xxServletcom.icss.fsop. mon.util.xxUtilcom.icss.fsop. mon.hander.xxHandercom.icss.fsop. mon.sql.xxSqlcom.icss.fsop. mon.entity.xxxx其中sm是system manage的简写,其他同上;3、公共的类:mon.package/class含义同上。2.2 相关

5、类1、对于Servlet,必须继承ServletBase,必须在Servlet中处理与request和response相关的操作,一般是取参数和设置属性等操作;2、对于Handler,必须继承HandlerBase,该类的方法中,不能用request和response作为参数,更不能用Servlet作为参数;3、程序中使用到的SQL,一律在XXXSQLBuilder中进行拼写,该类属于util包,需要继承SQLBuilderBase,其构造函数为私有类型,并且要实现静态方法getSQLBuilder(conn),根据不用的数据库类型,返回不同的实例。第三章 JAVA规范3.1 核心原则1 软件

6、工程化2 面向对象3 能简单不复杂4 强调团队协作3.2 命名规范程序内的所有标识符(包括包名、类名、接口名、方法名、变量名)都应由字母、数字和下划线组成,并以字母开头;统一采用英文命名,用词应当准确,禁止使用中英文混合的方式命名,如果可能的话,尽量使用有意义的英文单词或多个单词的缩写命名(缩写应该是被广泛使用的缩写),做到见名知意;标识符的长度应当符合“min-length & max-information”原则;程序中不要出现仅靠大小写区分的相似的标识符;在使用英文字母起标识作用时要注意,尽量不使用 “O”,“Z”,“I”等单个字符,以避免与数字“0”,“2”,“1”混淆。3.2.1 包

7、、类和接口1、所有包名全部小写,只能使用英文字母,不得使用数字和其他符号;2、类名使用有意义的英文单词或单词的组合,每个单词的首字母大写,如果是实现接口的类,可酌情使用Imp结尾,英文单词一般为名词。3、接口名使用有意义的名词和形容词的组合,每个单词的首字母大写,名称前不需要添加前缀“I”,英文字母i的大写。3.2.2 方法方法命名使用动词或“动词+名词”的组合,名称的首字母小写,名称中其他词的首字母大写。对于取值的方法(getter method),加“get”作前缀;对于设置的方法(setter method),加“set”作前缀;对于布尔型的方法(boolean method),加“is

8、”作前缀;用正确的反义词组命名具有互斥意义或相反动作的函数,例如getValue(),setValue()。 3.2.3 变量变量命名使用名词或名词 “形容词名词”的组合,名称的首字母小写,名称中其他词的首字母大写。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m 和n,它们一般用于整型;c,d,e,它们一般用于字符型。用正确的反义词组命名具有互斥意义的变量,例如: int minValue和int maxValue。尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编号。命名应尽量使用匈牙利命名法,成员变量用长名字,参数和局部变

9、量用短名字,一般由小写字母开头的单词组合而成。类成员变量前一般应加上m_,静态变量应加上s_,紧接着是变量的类型(只限于JDK内置类型)。临时变量应参照如下类似的格式书写,如ltmp ,tmpStr,tempStr等。例如:m_nTotalNum,m_strPath,s_bRcving类型前缀整型n,i长整型l无符号整型u字符ch布尔量b浮点数f双精度浮点d字符串str,sz3.2.4 常量常量(static final 变量)名字的每个字母都大写,并且指出完整含义,词与词之间用下划线分隔。3.3 代码结构代码组织要清晰,严格控制函数的长度和每行代码的长度,,(,),if,else,do,wh

10、ile,for,case等要对应整齐,缩进全部用Tab键(4个空格)。变量的定义要集中,函数间要有空行分开,一个程序中的空行数目最好占8%-16%。多态函数和功能相近的函数集中放在一起。代码应该简洁、清楚并讲述了所发生的一切,我们的目标应该是写出最清晰的代码,而不是最巧妙的代码。有些不易理解的变量或函数应作注释,难懂的代码要有注解,在文件的开始处有该文件的用途描述。一定要保持注释的一致性。代码的重用要仔细,删掉从来没有用过的函数或变量,大篇幅注释掉的代码行也应删除,以免使程序混乱难读。工程中不起作用的文件或类应删除,工程目录下的非工程文件也应该移走,保持工程的清洁,避免混淆难于管理。3.3.1

11、 缩进代码缩进是指通过在每行代码前键入空格或制表符的方式,表示每行代码之间的层次关系。任何编程语言都需要代码缩进规范程序的结构,采用代码缩进的编程风格有利于代码的阅读和理解。在本项目的开发中,统一采用TAB(4个空格)进行代码缩进。在遇到有关类、结构、函数或过程、以及枚举等等复杂程序结构的定义的时候,我们通常需要将它的内容缩进一层。在 C/C+/C#/Java 语言中,大括号是一个非常明显的标志,凡是遇到大括号,都应该直接联想到缩进。3.3.2 行宽当一条语句太长而超出一定的宽度时,应该折行书写,尽量避免一行的长度超过80 个字符。3.3.3 换行需要折行时,从第二行起到该语句结束之间的各行应

12、该缩进一层,至下一条语句时再恢复原来的缩进位置。这一点我相信大家都能理解并愿意遵循,然而问题的焦点并不在于要不要换行,而在于在什么位置换行。当一个表达式不能在一行内写完,参照下面的标准换行:逗号后换行,操作符后换行,换行时保证代码意义的连贯性。在换行时,我们通常在一个变量或者常量之前换行,把逗号之类的分隔符、运算符留在前一行的行尾。函数调用时,如果参数个数很多,或者要传递的表达式写起来很长,那么也会涉及到长语句换行问题;在一些必要的情况下,我们为了清晰地列出函数的每一个参数,可以每行只书写一个参数,原则是:尽可能地在参数与参数之间换行,并将逗号保留在上一行行末。下面是经常使用的一些换行的示例代

13、码:代码示例1:由于代码过长而进行断行bitmap = new Bitmap(size.Width, size.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);代码示例2:对于一个超长表达式,我们可以在某两个表达式项之间断开:if (f = ImageFormat.Jpeg.Guid | f = ImageFormat.Tiff.Guid | f = ImageFormat.Png.Guid | f = ImageFormat.Exif.Guid) supportsPropertyItems = true;else sup

14、portsPropertyItems = false;原本一个很长的条件表达式,通过在“|”运算符处换行,显得更加地清晰。有一点需要我们注意的是,当我们进行折行时,要将折行位置处的分隔符(如前一例中的逗号,这一例中的“|”运算符等)留在上一行的行末,给人以“此行并未结束”的直观印象。代码示例13:寻找最佳的断行位置double containerAspectRatio = (double)container.ClientWidth / container.ClientHeight;如此一来,这个除法算术表达式就显得较为完整,相比前一种写法而言更能体现其内在的逻辑关系。通常我们会选择整个表达式中最高的关系层次进行断行,例如上述代码中的“赋值号”和“除号”都是可以考虑的断行点,但相比较而言,除号连接的这个算术表达式只是整个赋值表达式的右半部分,如果在除号处断行,那么不但整个表达式会被截断,连局部的这个除法表达式也会被截断;反之,我们选择在赋值号处换行,可以保持除法表达式的完整,最大限度地减少换行对语句整体结构的破坏,能够更加清楚地表达出原来的逻辑。代码示例1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号