《HAP框架-开发规范.docx》由会员分享,可在线阅读,更多相关《HAP框架-开发规范.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、HAP框架-开发规范 HAP 开发规范 文档作者: Hand 创建日期: 2016-06-28 更新日期: 2016-08-23 文档编号:当前版本: 1.0文档限制变更记录 10日期 作者 版本 变更说明批阅姓名 职位 分发拷贝编号 姓名 位置/ 岗位 1 2 3 4书目 文档限制 . 2开发规范 . 4官方举荐规范 . 4举荐规范(后端开发). 4举荐规范(前端开发). 7更改历史 . 10开发规范官方举荐规范HAP 开发的规范基础,请务必遵守正式的规范进行 开发流程规范 详细请参看:https:/rdc.hand- 开发 编码规范 详细请参看:https:/rdc.hand-举荐规范 (
2、后端 开发 )统一 统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以用supplier,也可以用 provider,但是我们只能选定一个运用,至少在一个 Java 项目中保持统一。统一是作为重要的,假如对同一概念有不同的表示方法,会使代码混乱难以理解。即使不能取得好的名称,但是只要统一,阅读起来也不会太困难,因为阅读者只要理解一次。达意 达意是指,标识符能精确的表达出它所代表的意义,比如:newSupplier,OrderPaymentGatewayService 等;而 supplier1, service2 等则不是好的命名方式。精确有两成含义,一是正确,二是丰富
3、。假如给一个代表供应商的变量起名是 order,明显没有正确表达。同样的,supplier1, 远没有 targetSupplier 意义丰富。简洁 简洁是指,在统一和达意的前提下,用完量少的标识符。假如不能达意,宁愿不要简洁。比如:theOrderNameOfTheTargetSupplierWhichIsTransfered,太长,transferedTargetSupplierOrderName 可以的,但是 transTgtSplOrdNm 就不行以了。缓存的作用 由于常常获得的一些基本数据和静态数据不会做任何变更,但是假如每次都从 DB 端获得会产生大量的连接资源奢侈且也降低了访问效
4、率,对于这种状况,缓存会成为一种最为适合的解决方式,首先一次性会将这种类型数据以键值对的形式把这些数据缓存到内存里面,每次操作的时候,先到内存里面找,看有没有这些数据,假如有,那么就干脆运用,假如没有那么就获得它,并设置到缓存中,下一次访问的时候就可以干脆从内存中获得了。从而节约大量的时间,资源,有效提高了读取数据效率 常量 的设定 由于 JAVA 项目中经常有多个类会用到同一个不会变更的值,假如各个类自行定义同一个常量数据会产生大量的内存冗余,而将一些公用的常量统肯定义到一个工具类中,这样就会节约大量内存空间,提高项目运行效率,提高了代码重用性。表 创建规范 (1)一般表:产品_模块_属性比
5、如 hfs_org_companys (2)多语言处理表基表:产品_模块_属性_B如:hfs_org_companys_b注:须要包含多有字段,包括多语言字段多语言表:产品_模块_属性_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.control
6、lers工具包的运用规范 全局工具包包命名规范:hfs.utils 模块工具包包命名规范:hfs.模块.utils实例:hfs.fnd.utils 公用模块工具包 hfs.ar.utils 应收模块工具包 类名创建 规范 类名要首字母大写比如 RoleController 类名往往用不同的后缀表达额外的意思比如 RoleController,IRoleService。类名后缀Controller:干脆处理页面恳求,管理页面逻辑类Service:表明这个类是服务类,主要为其他类供应服务的方法DTO:表明这个类为实体封装类,和 DB 端进行映射Impl:表明这个类是实现类,不是接口 Mapper:
7、数据库交互层Job:按时间依次运行的任务Factory:生成某种对象工厂的类方法名 创建规范 (1)首字母小写如 addOrder() 不要 AddOrder()(2)动词在前如 addOrder(),不要 orderAdd()(3)动词前缀往往表达特定的含义如 createOrder() 即创建订单 静态 常量创建规范 全大写用下划线分割 如 public static final String ORDER_STATUS_CD_CLOSED = 8; 属性 名创建规范 首字母小写,骆驼法则 如:public String orderName;。多语言标签 命名 规范 1)功能层面多语言标签h
8、fs.模块.功能.属性实例:hfs.gl.daily_rate.from_currency 币种从 2)模块层面多语言标签hfs.模块.属性hfs.ar.customer_name 客户名称 3)系统层面多语言标签hfs.属性hfs.query 查询留意:尽量考虑多语言标签的通用性和敏捷性,如是否启用这种类似的标签,可以考虑建到模块层或系统层 Mybatis 运用规范 1)Mapper 书目规范文件夹基于模块配置,根书目 src/main/resources模块书目:fnd 基础模块、gl 总帐模块 org 组织模块实例:src/main/resources/fnd/mapper2)Mappe
9、r 的 XML 文件规范只针对单表做增删改查,为了运用 HAP 框架的封装特性,一个实体类须要建一个映射文件,假如不运用框架对单表操作的增删改查特性,建议一个功能运用一个映射文件: 3)Mapper 中 SQL 语句规范> 拼接 SQL 尽量削减冗余> 为了增加程序跨多数据库的部署需求,尽量运用标准 SQL>SQL 别名尽量与 DTO 字段名字对应,以提高代码阅读性> 非特别状况不建议拼接模糊查询的%,可运用 Like 让用户自主确定 事务处理规范 在 Service 层编写的方法假如存在新增、编辑等 DML 操作,须要留意事务处理的管理,比如通过注解的方式进行处理注:
10、在 Controller 层的方法里不能调用多个带事务处理的 Service层方法,建议在Service层进行组合构建新方法进行调用举荐规范(前端开发)LigerUI 运用规范 1)必输字段处理规则 必输字段除在 LigerUI 界面端须要做费控处理外,在 Controller 层也须要做非空逻辑处理,如:getValidator().validate(lookupTypes, result); 2)VIEW 层 HTML 文件命名规范 整个功能的 HTML 命名必需遵守统一的风格,参考数据库表的命名规范进行。如:应付模块,零售单界面开发 书目结构: 汇总界面:retail_bill_summ
11、ary.html 明细界面:1)同时支持新增、编辑、查看 retail_bill.html 2)独立新增 retail_bill_add.html 3)独立编辑查看 retail_bill_edit.html LOV 页面命名:全局级:统一放置 view/lov 书目下 inventory_item_lov.html 功能级:retail_bill_user_lov.html 拓展文件 运用 为了丰富 UI 组件的多样性,满意框架支持以外的需求,须要在开发过程中去拓展 JS、CSS、Images、HTML 等文件,本小节将介绍怎样拓展和运用 HAP 框架以外的组件功能。首先为了便于管理和维护,
12、在 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 文件中进行引入 <#include ./include/hfs.html> JS 编码 规范 详细请参看:更改历史