# 服务工程规范

整体工程规划架构是基于六边型思想,并结合当前项目工程结构特点进行的规划和划分。以下为整体工程的规划架构:

# 你将获取

  • 工程命名规范
  • 工程包的命名规范
  • 工程模块包的命名规范
  • 实体类规范
  • 基类规范

# 规范内容

# 工程命名规范

工程结构清晰,统一采用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:基础日志包启动类