《HAP框架-开发规范-精品文档资料整理.docx》由会员分享,可在线阅读,更多相关《HAP框架-开发规范-精品文档资料整理.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、HAP开发规范文档作者:Hand创建日期:2016-06-28更新日期:2016-08-23文档编号:当前版本:1.0Note: Title, Subject, Last Updated Date, Reference Number, andVersion are marked by a Word Bookmark so that they can be easily reproduced in the header and footer of documents. When you change any of these values, be careful not to accidenta
2、lly delete the bookmark. You can make bookmarks visible by selecting Tools-OptionsView and checking the Bookmarks option in the Show region.文档控制变更记录10日期作者版本变更说明审阅姓名职位分发拷贝编号姓名位置/岗位1234Note: The copy numbers referenced above should be written into the Copy Number space on the cover of each distributed
3、 copy. If the document is not controlled, you can delete this table, the Note To Holders, and the Copy Number label from the cover page.Note:目录文档控制2开发规范4官方推荐规范4推荐规范(后端开发)4推荐规范(前端开发)7更改历史10Note: To update the table of contents, put the cursor anywhere in the table and press F9. To change the number o
4、f levels displayed, select the menu option InsertIndex and Tables, make sure the Table of Contents tab is active, and change the Number of Levels to a new value.开发规范官方推荐规范 HAP开发的规范基础,请务必遵守官方的规范进行开发流程规范具体请参看:https:/rdc.hand-开发编码规范具体请参看:https:/rdc.hand-推荐规范(后端开发)统一统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以
5、用supplier,也可以用provider,但是我们只能选定一个使用,至少在一个Java项目中保持统一。统一是作为重要的,如果对同一概念有不同的表示方法,会使代码混乱难以理解。即使不能取得好的名称,但是只要统一,阅读起来也不会太困难,因为阅读者只要理解一次。达意达意是指,标识符能准确的表达出它所代表的意义,比如:newSupplier, OrderPaymentGatewayService等;而 supplier1, service2等则不是好的命名方式。准确有两成含义,一是正确,二是丰富。如果给一个代表供应商的变量起名是 order,显然没有正确表达。同样的,supplier1, 远没有t
6、argetSupplier意义丰富。简洁简洁是指,在统一和达意的前提下,用尽量少的标识符。如果不能达意,宁愿不要简洁。比如:theOrderNameOfTheTargetSupplierWhichIsTransfered,太长,transferedTargetSupplierOrderName可以的,但是transTgtSplOrdNm就不可以了。缓存的作用由于经常获取的一些基本数据和静态数据不会做任何改变,但是如果每次都从DB端获取会产生大量的连接资源浪费且也降低了访问效率,对于这种情况,缓存会成为一种最为适合的解决方式,首先一次性会将这种类型数据以键值对的形式把这些数据缓存到内存里面,每次
7、操作的时候,先到内存里面找,看有没有这些数据,如果有,那么就直接使用,如果没有那么就获取它,并设置到缓存中,下一次访问的时候就可以直接从内存中获取了。从而节省大量的时间,资源,有效提高了读取数据效率常量的设定由于JAVA项目中常常有多个类会用到同一个不会改变的值,假如各个类自行定义同一个常量数据会产生大量的内存冗余,而将一些公用的常量统一定义到一个工具类中,这样就会节省大量内存空间,提高项目运行效率,提高了代码重用性。表创建规范(1)普通表:产品_模块_属性比如hfs_org_companys(2)多语言处理表基表:产品_模块_属性_B如:hfs_org_companys_b注:需要包含多有字
8、段,包括多语言字段多语言表:产品_模块_属性_TL如:hfs_org_companys_tl注:只需要包含多语言字段,加上语言字段LANG包名创建规范(1)使用小写字母如com.core.utils,不要com.core.Utils(2)单词间不要用字符隔开,比如 com.core.utils,而不要com.core.ut_ils(3)包结构模块化:比如在hfs.模块.controllers可定义包名为hfs.fnd.controllers工具包的使用规范全局工具包包命名规范:hfs.utils模块工具包包命名规范:hfs.模块.utils实例:hfs.fnd.utils 公用模块工具包 hf
9、s.ar.utils 应收模块工具包类名创建规范类名要首字母大写比如 RoleController类名往往用不同的后缀表达额外的意思比如RoleController,IRoleService。类名后缀Controller:直接处理页面请求,管理页面逻辑类Service:表明这个类是服务类,主要为其他类提供服务的方法DTO:表明这个类为实体封装类,和DB端进行映射Impl:表明这个类是实现类,不是接口Mapper:数据库交互层Job:按时间顺序运行的任务Factory:生成某种对象工厂的类方法名创建规范(1)首字母小写如addOrder() 不要AddOrder() (2)动词在前如addOrd
10、er(),不要orderAdd() (3)动词前缀往往表达特定的含义如createOrder() 即创建订单静态常量创建规范全大写用下划线分割如public static final String ORDER_STATUS_CD_CLOSED = 8;属性名创建规范首字母小写,骆驼法则如:public String orderName;。多语言标签命名规范1)功能层面多语言标签hfs.模块.功能.属性实例:hfs.gl.daily_rate.from_currency 币种从2)模块层面多语言标签hfs.模块.属性hfs.ar.customer_name客户名称3)系统层面多语言标签hfs.属
11、性hfs.query 查询注意:尽量考虑多语言标签的通用性和灵活性,如“是否启用”这种类似的标签,可以考虑建到模块层或系统层Mybatis使用规范1)Mapper目录规范文件夹基于模块配置,根目录src/main/resources模块目录:fnd 基础模块、gl总帐模块 org 组织模块实例:src/main/resources/fnd/mapper2)Mapper的XML文件规范只针对单表做增删改查,为了使用HAP框架的封装特性,一个实体类需要建一个映射文件,如果不使用框架对单表操作的增删改查特性,建议一个功能使用一个映射文件:3)Mapper中SQL语句规范 拼接SQL尽量减少冗余 为了
12、增强程序跨多数据库的部署需求,尽量使用标准SQL SQL别名尽量与DTO字段名字对应,以提高代码阅读性 非特殊情况不建议拼接模糊查询的“%”,可使用Like让用户自主决定事务处理规范在Service层编写的方法如果存在新增、编辑等DML操作,需要注意事务处理的管理,比如通过注解的方式进行处理注:在Controller层的方法里不能调用多个带事务处理的Service层方法,建议在Service层进行组合构建新方法进行调用推荐规范(前端开发)LigerUI使用规范1)必输字段处理规则必输字段除在LigerUI界面端需要做费控处理外,在Controller层也需要做非空逻辑处理,如:getValid
13、ator().validate(lookupTypes,result);2)VIEW层HTML文件命名规范整个功能的HTML命名必须遵守统一的风格,参考数据库表的命名规范进行。如:应付模块,零售单界面开发目录结构:汇总界面:retail_bill_summary.html明细界面:1)同时支持新增、编辑、查看retail_bill.html2)独立新增retail_bill_add.html3)独立编辑查看retail_bill_edit.htmlLOV页面命名:全局级:统一放置view/lov目录下inventory_item_lov.html功能级:retail_bill_user_lov
14、.html拓展文件使用为了丰富UI组件的多样性,满足框架支持以外的需求,需要在开发过程中去拓展JS、CSS、Images、HTML等文件,本小节将介绍怎样拓展和使用HAP框架以外的组件功能。首先为了便于管理和维护,在webapp/resources下分别建了css、images、js等目录用于存放css等文件,在WEB-INF/view下新建了include目录用于存放html文件。 拓展JS在webapp/resources/js下存放拓展开发的JS文件,如图: 拓展CSS在webapp/resources/css下存放拓展开发的CSS文件,如图: 拓展Images在webapp/resources/images下存放拓展开发的Image文件,如图: 拓展程序引用1)在WEB-INF/view/include目录下创建组件引入html文件,如hfs.html,里面需要引入拓展的CSS、JS等信息2)在需要引用html文件中进行引入JS编码规范具体请参看:更改历史