当前位置:蚂蚁文档网 > 作文范文 > HAP框架-开发规范

HAP框架-开发规范

时间:2022-07-02 14:15:05 浏览次数:

  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-china.com/gitlab/HAP/hap-developer-guide/blob/master/chapter3.md 开发 编码规范 具体请参看:

 https://rdc.hand-china.com/gitlab/HAP/hap-developer-guide/blob/master/coding_spec.md

 推荐规范 (后端 开发 )

 统一 统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以用supplier,也可以用 provider,但是我们只能选定一个使用,至少在一个 Java 项目中保持统一。统一是作为重要的,如果对同一概念有不同的表示方法,会使代码混乱难以理解。即使不能取得好的名称,但是只要统一,阅读起来也不会太困难,因为阅读者只要理解一次。

 达意 达意是指,标识符能准确的表达出它所代表的意义,比如:newSupplier,

 OrderPaymentGatewayService 等;而 supplier1, service2 等则不是好的命名方式。准确有两成含义,一是正确,二是丰富。如果给一个代表供应商的变量起名是 order,显然没有正确表达。同样的,supplier1, 远没有 targetSupplier 意义丰富。

 简洁 简洁是指,在统一和达意的前提下,用尽量少的标识符。如果不能达意,宁愿不要简洁。比如:theOrderNameOfTheTargetSupplierWhichIsTransfered,太长,transferedTargetSupplierOrderName 可以的,但是 transTgtSplOrdNm 就不可以了。

 缓存的作用 由于经常获取的一些基本数据和静态数据不会做任何改变,但是如果每次都从 DB 端获取会产生大量的连接资源浪费且也降低了访问效率,对于这种情况,缓存会成为一种最为适合的解决方式,首先一次性会将这种类型数据以键值对的形式把这些数据缓存到内存里面,每次操作的时候,先到内存里面找,看有没有这些数据,如果有,那么就直接使用,如果没有那么就获取它,并设置到缓存中,下一次访问的时候就可以直接从内存中获取了。从而节省大量的时间,资源,有效提高了读取数据效率 常量 的设定 由于 JAVA 项目中常常有多个类会用到同一个不会改变的值,假如各个类自行定义同一个常量数据会产生大量的内存冗余,而将一些公用的常量统一定义到一个工具类中,这样就会节省大量内存空间,提高项目运行效率,提高了代码重用性。

 表 创建规范 (1)普通表:产品_模块_属性

 比如 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.controllers

 工具包的使用规范 全局工具包

 包命名规范:hfs.utils 模块工具包

 包命名规范:hfs.模块.utils

 实例:hfs.fnd.utils 公用模块工具包

  hfs.ar.utils 应收模块工具包 类名创建 规范 类名要首字母大写

 比如 RoleController 类名往往用不同的后缀表达额外的意思

 比如 RoleController,IRoleService。

 类名后缀

 Controller:直接处理页面请求,管理页面逻辑类

 Service:表明这个类是服务类,主要为其他类提供服务的方法

 DTO:表明这个类为实体封装类,和 DB 端进行映射

 Impl:表明这个类是实现类,不是接口

  Mapper:数据库交互层

 Job:按时间顺序运行的任务

 Factory:生成某种对象工厂的类

 方法名 创建规范 (1)首字母小写

 如 addOrder() 不要 AddOrder()

 (2)动词在前

 如 addOrder(),不要 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.属性

 hfs.query 查询

 注意:尽量考虑多语言标签的通用性和灵活性,如“是否启用”这种类似的标签,可以考虑建到模块层或系统层 Mybatis 使用规范 1)Mapper 目录规范

 文件夹基于模块配置,根目录 src/main/resources

 模块目录:fnd 基础模块、gl 总帐模块 org 组织模块

 实例:src/main/resources/fnd/mapper

 2)Mapper 的 XML 文件规范

 只针对单表做增删改查,为了使用 HAP 框架的封装特性,一个实体类需要建一个映射文件,如果不使用框架对单表操作的增删改查特性,建议一个功能使用一个映射文件:

  3)Mapper 中 SQL 语句规范

 > 拼接 SQL 尽量减少冗余

 > 为了增强程序跨多数据库的部署需求,尽量使用标准 SQL

 >

 SQL 别名尽量与 DTO 字段名字对应,以提高代码阅读性

 > 非特殊情况不建议拼接模糊查询的“%”,可使用 Like 让用户自主决定 事务处理规范 在 Service 层编写的方法如果存在新增、编辑等 DML 操作,需要注意事务处理的管理,比如通过注解的方式进行处理

 注:

 :在 Controller 层的方法里不能调用多个带事务处理的 Service层方法,建议在Service层进行组合构建新方法进行调用

 推荐规范(前端开发)

 LigerUI 使用规范 1)必输字段处理规则 必输字段除在 LigerUI 界面端需要做费控处理外,在 Controller 层也需要做非空逻辑处理,如:getValidator().validate(lookupTypes, result); 2)VIEW 层 HTML 文件命名规范 整个功能的 HTML 命名必须遵守统一的风格,参考数据库表的命名规范进行。

 如:应付模块,零售单界面开发 目录结构:

  汇总界面:

 retail_bill_summary.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 框架以外的组件功能。

 首先为了便于管理和维护,在 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 编码 规范 具体请参看:https://github.com/airbnb/javascript

 更改历史

推荐访问:框架 规范 开发

猜你喜欢