《数据中心产品开发规范.docx》由会员分享,可在线阅读,更多相关《数据中心产品开发规范.docx(36页珍藏版)》请在优知文库上搜索。
1、数据中心产品开发规范XXXX公司XX业务部XXXX年XX月文档说明本文档所涉及到的文字、图表等,仅限于内部使用,未经双方书面许可,请勿扩散到第三方。文档属性属性内容客户名称:项目名称:文档主题:文档编号:文档版本:版本日期:文档状态:文档变更版本修订日期修订人描述文档送呈单位姓名目的批阅参阅1 概述51.1 最根本原则52 JaVa技术规范62.1 平台使用的有关技术62.1.1 基本核心框架包62.1.2 其他框架包62.2 程序设计标准72.2.1 命名约定82.2.2 包名,类名,方法名,属性名,常量名命名约定92.2.3 注释约定102.2.4 快速浏览JaVaDOC102.3 开发规
2、范122.3.1 项目结构说明122.3.2 整体包结构说122.3.3 项目模块包结构及命名132.3.4 各子项目模块功能包结构142.3.5 配置文件包结构142.4 命名规则142.4.1 共用类142.4.2 业务层142.4.3 展现层152.4.4 模型层152.4.5 持久层162.4.6 XML配置162.4.7 资源文件182.4.8 JSP文件192.4.9 事务命名约束203 数据库技术规范213.1 概述213.2 命名基本规则213.3 数据库表空间213.3.1 命名基本规则213.4 默认用户方案213.5 表的命名规则、约定213.6 视图的命名规则、约定22
3、3.7 字段命名规则、约定223.8 存储过程的命名规则、约定223.9 序列对象的命名规则、约定223.10 触发器命名规则、约定234 HlVE技术规范245 HBaSe设计规范255.1 Namespace命名空间设计255.2 12Table表设计265.2.1 理想HBase表265.2.2 预创建分区275.2.3 列族数量275.2.4 可配置的数据块大小275.2.5 数据块缓存285.2.6 激进缓存285.2.7 布隆过滤器(Bk)OmfilIerS)295.2.8 生存时间(TTL)305.2.9 数据压缩315.2.10 数据分割325.2.11 单元时间版本335.3
4、 ColumnFamily列族设计345.4 Qualifier歹IJ设计35365.6HBaSe命名规范1概述本文提供一整套编写高效可靠的JaVa代码的标准、约定与指南。它们以安全可靠的软件工程原则为基础,使代码易于懂得、保护与增强。而且,通过遵循这些程序设计标准,你作为一个JaVa软件开发者的生产效率会有显著提高。经验证明,若从一开始就花时间编写高质量的代码,则在软件开发阶段,对代码的修改要容易很多。最后,遵循一套通用的程序设计标准将带来更大的一致性,使软件开发团队的效率明显提高。1.1最根本原则运用常识当找不到任何规则或者指导方针,当规则明显不能适用,当所有的方法都失效的时侯:运用常识并
5、核实这些基本原则。这条规则比其它所有规则都重要。驼峰命名法驼峰命名法(CdmeICase):就是当变量名或者函式名是由一个或者多个单字连结在一起,而构成的唯一识别字时,第一个单字以小写字母开始;第二个单字的首字母大写或者每一个单字的首字母都使用大写字母,比如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。驼峰命名法的命名规则可视为一种惯例,并无绝对与强制,目的是增加识别与可读性。2Java技术规范2.1 平台使用的有关技术平台使用的框架包分核心框架包与其他务必的框架包,各框架包本身所依靠的开源包不做列举,由框架包本身的信息来定。2.1.1 基本
6、核心框架包平台使用Spring+Struts2+myBatis的三层架构作为基本框架。(JDKl.6+)。参考如下:名称版本备注Struts22.2.1Spring3.0.5mybatis-core3.1.1不支持跨数据库建议,目前开发在mysql上,现网环境在db2上mybatis-spring1.1.1MySQL5.0Tomcat7.0jQuery1.82.1.2 其他框架包除基本框架外,平台其他将使用的一些框架包,参考如下:(JDK1.5+)名称版本备注SpringSecurity2.0.4ApacheCommons2.6常用的工具包等SLF4J1.6.1ApacheLoggingIog
7、4j1.2.15ApacheAnt1.7.1Oscache2.4.1XMemcache1.2.5C3P00.9.1Dom4j2.0commons-beanutils1.8.3Mybatis-Spring1.1.1Hadoop-core0.20.2-cdh3u5Hive-Cli0.7.1-cdh3u5Hbase0.90.6-cdh3u52.2 程序设计标准JaVa的程序设计标准很重要,原因在于它将提高开发团队各成员的代码的一致性。一致性的提高会使代码更易懂得,这意味着它更易开发与保护。从而降低了应用程序的总开发成本。你务必牢记的是:你的JaVa代码在你已离开并开始另一个项目之后,会保留相当长的一
8、段时间。因此开发过程中一个很重要的目标就是要确保在开发成员或者开发团队之间的工作能够顺利交接,不必花很大的力气便能懂得已编写的代码,以便继续保护与改进往常的工作。假如代码难以懂得,很有可能被废弃与重写。S2.2.1 命名约定我们将在整个标准中讨论命名约定,下列是几个基本点: 使用能够准确说明变量/字段/类的完整的英文描述符比如,使用类似firstName,grandTotal或者CorPOrateCUStomer这样的名字。尽管象xl,yl或者fn这样的名字很简短,输入起来容易,但是我们难以明白它们代表什么、结果是什么含义,因而使代码难以懂得、保护与改进。 使用该领域的术语假如用户称他们的客户
9、(ClientS)为顾客(CUStomes),那么就使用术语CUStomer来命名这个类,而不用Client。许多程序开发者会犯的一个错误是,不去使用工业或者领域里已经存在着很完美的术语时,却生造出一些普通词汇。 使用大小写混合,提高名字的可读性通常应该使用小写字母,但是类与接口的名字的首字母,与任何中间单词的首字母应该大写。 尽量少用缩写,但假如一定要使用,就要慎重地使用这意味着应该保留一个标准缩写的列表,明智地从中选取,同时在使用时保持一致。比如,想对单词number使用缩写,那么可从nbr,no或者者num中选取一个,说明一下使用了哪一个(具体是哪个倒无所谓),同时只使用这一种形式。 避
10、免使用长名称(不超过15个字母)比如:PhysicaiorvirtuaiproductOrService看起来大概是个不错的类名,但是名字太长,应该考虑重新给它起个短一点的名字,比如象Offering。 避免使用相似或者者仅在大小写上有区别的名字比如,不应同时使用变量名PersistentObject与PersistentObjects及anSqlDatabase与anSQLDatabase这样的名称 避免使用下划线作为名字的首末字母下列划线为首末字母的名字通常为系统保留,除预处理定义之外,通常不用作用户命名。更重要的是,下划线经常造成烦恼而且难输入,因此尽量避免使用。2.2.2 包名,类名,
11、方法名,属性名,常量名命名约定口包命名包命名全部使用小写英文字母,中间不同意有数字下划线等特殊字符。 类,接口命名类,接口名开头使用大写英文字母,多单词使用驼峰命名法。类名中不要使用下划线与数字等特殊字符,正确的写法示例:HibernateDaoSupporto假如表示特殊功能的类,在类名的末尾加上所要表示的功能英文名称,如:*Listener,表示监听器等。 方法命名方法命名使用驼峰命名法,方法名中间不要使用下划线与数字等特殊字符,正确的示例:processing()o方法的参数与方法内部的局部参数可自定,符合要求就行。 特殊Bean类的属性命名约定Bean的属性命名规则严格使用驼峰命名法,
12、不同意使用下划线,名字长度最长不要超过15个字符,确实需要长名字时,适当缩写部分英文字母。 常量属性命名常量的命名规则通常为常量名全部使用大写字母,多单词之间使用下划线隔开,不同意使用数字等特殊字符,同时常量的声明一定要是staticfinal的。 普通类的属性命名普通类的属性命名除常量依照常量命名法外,其他的属性的名字使用“英文名字(首字母大写)”命名,多单词可使用鸵峰命名法或者用下划线隔开。2.2.3 注释约定本文还会对注释进行约定,有关注释风格能够在eclipse中导入codetemplates.m文件。下列是几个基本点: 注释应该增加代码的清晰度代码注释的目的是要使代码更易于被同时参与
13、程序设计的开发人员与其他后继开发人员懂得。 假如你的程序不值得注释,那么它也很可能也不值得运行。 保持注释的简洁最好的注释应该是简单明了的注释。注释不必洋洋洒洒,只需提供足够的信息,使别人能够懂得你的代码。 先写注释,后写代码写代码注释的最好方法是在写代码之前就写注释。这使你在写代码之前能够想想代码的功能与运行。而且这样确保不可能遗漏注释。另一种方法是边写代码边写注释。由于注释能够使代码更易懂得,因此在程序开发的过程中,也能够利用这一点。假如打算花些时间写注释,那么至少你应从这个过程中获得些什么。 注释信息不仅要包含代码的功能,还应给出原因比如,下面例1中的代码显示金额在$1,000以上(包含
14、$1,000)的定单可给予5%的折扣。为什么要这样做呢?难道有一个商业法则规定大额定单能够得到折扣吗?这种给大额定单的特殊是有的时候限的呢,还是一直都这样?最初的程序设计者是否只是由于慷慨大度才这样做呢?除非它们在某个地方(或者者是在源代码本身,或者者是在一个外部文档里)被注释出来,否则你不可能明白这些。2.2.4快速浏览JavaDocSun公司的JavaDevelopmentKit(JDK)中有一个名为javadoc的程序。它能够处理Java的源代码文件,同时为Java程序产生HTML文件形式的外部注释文档。Javadoc支持一定数目的标记,标识注释文档中各段起始位置的保留字。详情请参考JDKjavadoc文档。用于目的authorname类、接口说明特定某一段程序代码的作者。每一个作者各有一个标记。deprecated类、成员函数。说明该类的应用程序编程接口(API)已被废弃,因此应不再使用。exceptionnamedescription成员函数说明由成员函数发出的特殊。一个特殊使用一个标记,并要给出特殊的完整类名。paramnamedescription成员