7.2 KiB
7.2 KiB
项目概述
- 项目名称:Orgmanax:“Org” 代表
organization(组织),man表示 “人”,ax象征对这些元素进行整合. - 项目简介:维护单位、部门、人员、岗位相关的业务及数据,比如:通讯录、项目添加人员、添加班组、更换班组长等
项目约束
- 引用外部(其它域、第三方)SDK时,需要与Leader确认,禁止私自引入
- service分为
basic(基础功能)与biz(业务功能)。basic不可依赖biz,biz应依赖basic完成部分功能。原则上biz与biz也不应该互相依赖 - 代码风格:
- 命名规范:采用驼峰命名法,如:
orgmanaxDomain - 代码注释:
- 类注释:类名、功能、作者、创建时间、修改时间等
- 方法注释:方法名、功能、参数、返回值、作者、创建时间、修改时间等
- 代码风格:
- 缩进:4个空格
- 换行:每行不超过120个字符
- 空格:
- 关键字前后:
if、for、while、switch、case等前后各一个空格
- 关键字前后:
- 缩进:4个空格
- 命名规范:采用驼峰命名法,如:
项目结构
模块层级
模块描述
| 模块名称 | 功能 | 依赖 |
|---|---|---|
orgmanax-api |
API层,提供给二方的SDK,方便二方快速接入人岗架相关功能 | 无 |
orgmanax-common |
公共组件、UTIL等 | 无 |
orgmanax-domain |
领域层,核心业务逻辑 | 无 |
orgmanax-infra |
基础设施层,隔离非业务变化,防止外部变化引起内部业务变更。 对接二方依赖,数据库,MQ等中件间 |
orgmanax-domain orgmanax-common |
orgmanax-server |
业务层,调用domain与infra实现业务逻辑的编排 | orgmanax-api orgmanax-common orgmanax-infra orgmanax-domain |
目录层级
.
├── orgmanax-api #提供给二方的功能,包括基础功能、业务功能。
│ └── src
│ ├── main
│ │ └── java
│ │ └── cn
│ │ └── axzo
│ │ └── orgmanax
│ │ └── api
│ │ ├── config #配置,如:将Feign接口托管至spring
│ │ ├── node #部门相关接口
│ │ │ ├── feign #API
│ │ │ │ ├── basic #部门基础API,如:创建部门、通过ID查询部门、更新部门、删除部门
│ │ │ │ └── biz #部门业务相关API,具体的实现可以依赖基础API的功能如:创建班组部门依赖创建部门等
│ │ │ ├── req #请求入参
│ │ │ └── resp #请求出参
│ │ └── unit #单位相关接口
│ │ └── feign #API
│ │ ├── basic #单位基础API
│ │ └── biz #单位业务相关API
│ └── resources
│ └── META-INF #SPI(service provider interface)
|
├── orgmanax-common #公共包
│ └── src
│ └── main
│ └── java
│ └── cn
│ └── axzo
│ └── orgmanax
│ └── common
│ ├── config
│ └── entity
|
├── orgmanax-domain #领域层
│ └── src
│ ├── main
│ │ └── java
│ │ └── cn
│ │ └── axzo
│ │ └── orgmanax
│ │ └── domain
│ │ └── node #部门域
│ │ ├── entity #实体 可以提供部门的属性(字段)及业务行为(接口),注意:会发生属性变更的操作才适合定义为行为
│ │ └── gateway #部门相关的操作接口,只定义接口,具体的实现由infra层实现
│ │ └── addregate #聚合多个实体的对象和业务操作可以放到该目录下
├── orgmanax-infra #基础设施层,主要是对接二方依赖,数据库,MQ等中件间。依赖domain层
│ └── src
│ ├── main
│ │ ├── java
│ │ │ └── cn
│ │ │ └── axzo
│ │ │ └── orgmanax
│ │ │ └── infra
│ │ │ ├── config #基础配置,如MYBATISPLUS的配置
│ │ │ └── dao #数据访问层
│ │ │ └── node #部门相关
│ │ │ ├── convert #数据转换相关,比如将entity转换为数据实体do
│ │ │ ├── dao #mybatisplus的service实现,用于CRUD,可与Lambda表达式配合使用。
│ │ │ ├── DO #数据实体
│ │ │ ├── gateway # 业务查询防腐层,提供给service层使用,用于隔离service层与dao层
│ │ │ │ └── impl #gateway的具体实现可以调用dao完成相关功能,也可以作为聚合根获取数据的实现
│ │ │ └── mapper
|
└── orgmanax-server #包含mvc的controller与service
└── src
├── main
│ ├── java
│ │ └── cn
│ │ └── axzo
│ │ └── orgmanax
│ │ └── server
│ │ ├── controller #API
│ │ │ ├── node #部门API
│ │ │ └── unit #单位API
│ │ └── service #业务层,调用infra层与domain层完成业务流程的编排
│ │ └── node #部门相关业务
│ │ ├── basic #基础的公共相关业务功能实现
│ │ ├── biz #基础的业务功能,可以依赖basic里面的接口
│ │ ├── check #业务校验相关
│ │ └── convert #数据转换,如将请求REQ转换为领域对象
│ └── resources
└── test
└── java
