# 组件集成规范

# 概述

组件有两种使用方式,可以根据组件的使用场景进行确定

  • 方式一:后端以jar包的方式提供,产线通过maven依赖导入到自己的工程中使用
  • 方式二:做为独立的服务存在,服务之间可以通过RESTful-API的方式进行通信

下文中的示例均以 事件服务组件为例

# 后端

后端组件以jar方式提供时,需要上传到指定的私服中,私服地址:http://119.255.194.80:8081,用户名密码请线下联系王鑫

# 模块命名规范

模块名为hos-app开头,然后在后面加上模块名称,如: 事件组件的名称为hos-app-event

 <dependency>
    <groupId>com.mediway.hos</groupId>
    <artifactId>hos-app-event</artifactId>
    <version>具体版本以实际情况为准</version>
</dependency>

# 工程结构规范

组件的工程结构以总体工程结构规范的方案三为准。

具体示例如下:

hos-app-event                           事件服务组件
|   hos-app-event-api                     模块对外接口模块
|   |   com.mediway
|   |   |   event.contract
|   |   |   |   api                     接口
|   hos-app-event-controller              模块控制模块
|   |   com.mediway
|   |   |   event.contract
|   |   |   |   |   controller              控制层
|   hos-app-event-cloud-runner            模块微服务启动模块
|   |   src/main/java
|   |   |   com.mediway
|   |   |   |   hos
|   |   |   |   |   HosSecurityConfig.java      安全配置类
|   |   |   |   |   SecurityLoginConfig.java    登录配置类
|   |   |   |   EventApplication.java        启动类
|   |   src/main/resource
|   |   |   application.yml             模块配置文件
|   |   |   application-dev.yml
|   |   |   logback-spring.xml    
|   hos-app-event-model                   模块实体模块
|   |   com.mediway
|   |   |   event.contract
|   |   |   |   model               
|   |   |   |   |   entity              实体,对应表,需要继承BaseEntity
|   |   |   |   |   vo                  视图对象,用于展示层,封装某个指定页面(或组件)的所有数据
|   hos-app-event-service                 模块服务模块
|   |   com.mediway
|   |   |   event.contract
|   |   |   |   annotation              自定义注解
|   |   |   |   config                  配置类
|   |   |   |   constant                常量类
|   |   |   |   enums                   枚举类
|   |   |   |   exception               模块自定义的异常类
|   |   |   |   filter                  业务模块自定义的filter
|   |   |   |   mapper                  需要继承BaseMapper
|   |   |   |   service                 需要继承BaseService
|   |   |   |   |   impl                需要继承BaseServiceImpl,实现service
|   |   |   |   utils                   业务模块自定义的util,除了系统提供的util
|   |   |   |   src/main/resource        
|   |   |   contract                     模块名,也可以是子模块的名称
|   |   |   |   XXMapper.xml                         

# 配置文件命名规范

自定义配置项以framework开头,第二段为模块名称

framework:
  event:
    xx1: ssss
    xx2: aaaa

# 代码规范

后端代码开发规范(命名规范、注释规范、日志规范、数据库规范等)、接口规范点这里

# 表命名

表的名称以hos_开头,第2段为模块名称,后面部分根据实际的业务情况进行确定,其他请参考数据库规范

比如事件定义表 hos_even_define,事件订阅表 hos_even_subscribe

# 说明文档

每一个组件开发完成后都需要编写说明文档给各个产线的开发人员使用,

该文档应放在应用组件 章节里面,文档中需要说明以下几点:

  • 组件的概述,主要内容包括但不限于 组件的介绍信息、使用场景和解决的问题。
  • 组件的集成步骤,包含但不限于( pom依赖信息、初始化SQL、配置文件配置项的说明、) 的描述和示例,示例需要使用代码块,
  • 组件的功能详细介绍,文字描述及截图,具体详细程度可参考功能手册中其他模块的介绍

# 前端

# 如何开发应用组件

  1. 下载代码,运行项目,参考项目下载及运行
  2. 事件服务组件为例, 执行 node ./bin/new.js event 命令(event为模块名),此命令会在 src/sys目录下新建event模块,无需再手动创建了.

# 工程结构规范

组件的工程结构以前端工程结构为准。 放在src/sys目录下,与 hos-app-base 平级. 具体示例如下:

hos
    |   node_modules                        项目依赖包
    |   public                              模板文件
    |   src                                 项目资源
        |   biz                             业务目录
        |   sys                             系统目录
            |   hos-app-base                hos基础模块目录
            |   hos-app-event               事件服务组件
                |   api                     接口配置
                |   assets                  静态文件
                |   axios                   axios配置
                |   components              项目通用组件
                |   constant                静态常量
                |   directive               自定义指令
                |   enum                    全局枚举
                |   i18n                    国际化配置
                |   router                  路由配置
                |   store                   vuex配置
                |   styles                  公共样式
                |   utils                   工具方法
                |   views                   页面
        |   defaultSettings                 项目默认配置项
        |   main.js                         js主入口
        |   permission.js                   全局路由守卫(权限判断)
    |   static                              引入的静态资源(hisUI使用,其他不需要)
    |   vue.config.js                       vue配置
    |   .env                                环境配置
    |   |   ....                            其他

# 模块命名规范

模块名以hos-app开头,然后在后面加上模块名称,如: 事件组件的名称为hos-app-event

# 代码规范

前端代码开发规范点这里

# 分支规范

# 命名规范

以模块名命名主分支,如: event_dev event_test event_release

# 权限

主管有master权限,其他开发是dev权限