# 服务工程规范
整体工程规划架构是基于六边型思想,并结合当前项目工程结构特点进行的规划和划分。以下为整体工程的规划架构:
# 你将获取
- 工程命名规范
- 工程包的命名规范
- 工程模块包的命名规范
- 实体类规范
- 基类规范
# 规范内容
# 工程命名规范
工程结构清晰,统一采用alinesno+工程性质+业务命名,中间采用"-"连接。工程命名统一采用英文小写字母,禁止使用大写字母和拼音代表含义。每个英文单词不超过10个字母。
示例:
- alinesno-infra-base-notice-consumer:对外引用
- alinesno-infra-base-notice-domain:业务领域
- alinesno-infra-base-notice-application:管理应用
- alinesno-infra-base-notice-provider:对外接口
- alinesno-infra-base-notice-provider-api:对外SDK
- alinesno-infra-base-notice-start:启动包(配置)
# 工程包的命名规范
工程包命名统一采用小写字母,禁止使用大写字母。工程包统一使用前缀com.alinesno.infra。
示例:
- com.alinesno.infra.base.notice:基础日志包
- com.alinesno.infra.business.cms:CMS业务服务包
# 工程模块包的命名规范
工程模块包命名规范如下:
- 持久层对象包:com.alinesno.infra.base.notice.entity
- 持久层包:com.alinesno.infra.base.notice.repository
- 实体类包:com.alinesno.infra.base.notice.bean
- 对外提供接口:com.alinesno.infra.base.notice.provider
- 服务包:com.alinesno.infra.base.notice.service
- 枚举包:com.alinesno.infra.base.notice.emnus
- 常量包:com.alinesno.infra.base.notice.constants
- 工具包:com.alinesno.infra.base.notice.utils
- 异常包:com.alinesno.infra.base.notice.exception
示例:
- com.alinesno.infra.base.notice.entity:持久层对象包
- com.alinesno.infra.base.notice.repository:持久层包
- com.alinesno.infra.base.notice.bean:实体类包
- com.alinesno.infra.base.notice.provider:对外提供接口
- com.alinesno.infra.base.notice.service:服务包
- com.alinesno.infra.base.notice.emnus:枚举包
- com.alinesno.infra.base.notice.constants:常量包
- com.alinesno.infra.base.notice.utils:工具包
- com.alinesno.infra.base.notice.exception:异常包
每个服务工程下必须添加README.md文件作为工程说明。
# 实体类规范
类命名统一采用驼峰形式,禁止使用中文拼音缩写。每个单词长度不能超过10个字母。类命名统一使用模块名称作为后缀。
示例:
- LogsErrorEntity:持久层对象,模块为base.notice
- LogsErrorRepository:持久层操作,模块为base.notice
- LogsErrorRepositoryImpl:持久层实现操作,模块为base.notice
- LogsErrorBean:实体类对象,模块为base.notice
- LogsErrorService:服务,模块为base.notice
- LogsErrorServiceImpl:服务实现,模块为base.notice
- LogsErrorEmnus:枚举对象,模块为base.notice
- LogsErrorConstants:常量,模块为base.notice
- LogsErrorUtils:工具,模块为base.notice
- LogsErrorException:自定义异常类,模块为base.notice
- LogsException:自定义全局异常类,模块为base.notice
枚举对象(emnus)、常量对象(constants)和工具对象(utils)包含有可用方法时,需要提取出来放于核心工程包中。
# 基类规范
持久层对象继承基类BaseEntity。
示例:
class LogsErrorEntity extends BaseEntity {}
持久层操作继承基类IBaseRepository。
示例:
interface LogsErrorRepository extends IBaseRepository<DemoEntitLogsErrorEntity, String> {}
实体类对象继承基类BaseBean。
示例:
class LogsErrorBean extends BaseBean {}
业务服务类继承基类BaseService。
示例:
class LogsErrorService extends BaseService {}
异常类继承基类BaseException。
示例:
class LogsErrorException extends BaseException {}
每个工程的启动类统一放置于工程包下,类名统一为LinesnoApplication。
示例:
- com.alinesno.infra.base.logs.LinesnoApplication:基础日志包启动类