# 项目构建

# 开发中常见问题的处理方法

# 是否需要拦截异常

有以下情况需要考虑

  1. 未校验的业务数据会导致程序异常, 判断是否需要校验业务数据时(e.g. 因为某些业务数据为空导致NPE)

结论

只需要做正确的程序设计, 如果明确某项业务数据是一定不为空的, 那就不需要对其判断, 如果程序异常, 则能根据异常更方便定位问题.

# IDE配置全局类注释

配置方法:idea设置类注释和方法注释模板 (opens new window)

配置示例

/**
 * @Describe
 * @Author: xxx
 * @Date: ${DATE} ${TIME}
 * @Version 1.0
 */

# project结构划分以及package划分

项目module划分

  1. 共用的公共代码模组

多个服务中也存在公用的代码, 在构建时会要打包到服务中去, 这一块需要提炼出来.

  1. 服务

独立的业务或者功能组, 划分为一个服务.

# 项目中QO/DTO/VO的使用

对象的作用范围/功能

QO: 用于接收从前端传过来的值的封装类, 从前端接收的QO也可以直接作为service的方法入参使用.

DTO: 构建后用于做mapper的入参

VO: 作为接收数据库返回结果的实体类

# 枚举使用

  1. 建一个基础的枚举类, 以供其他枚举类实现

    a. 基础枚举类中定义getValue()方法, 以确保每一个实现类必须实现此基础枚举类, 为了规范团队枚举的使用.

  2. 大部分枚举都是有两个属性:name和value.

用处:

  1. 枚举重写了toString()方法, 返回value属性.

用处:

  1. 枚举中会有构造方法, 为了方便构造对应枚举类对象.

用处:

  1. 枚举类库

提供了....功能

# 下载工具类(http servlet方式)

# spring中关于类的注解使用规范

注入时, 对于什么使用@Autowired, 对于什么使用@Resource等等之类的规范

# controller的规范

# 项目中分页的使用

  1. 定义一个QueryRequest类

# swagger使用规范

# spring事件

# 项目异常处理

  1. 定义了一个业务异常, 继承自RuntimeException

# 刷新token之类的处理方式

# 数据字典

# 项目git使用规范

# MQ的使用

# 文件服务的使用

OSS等 文件服务要做好分离, 方便以后进行拆分, 或者分层等处理, 因此最好是远程调用的方式.

# 待解决/待优化的项目问题

  1. 主业务数据能否有将所有相关操作进行记录, 方便排查

  2. 项目初始时就需要一套能方便查看测试环境日志的工具

  3. 一套能自动化打包部署的工具

  4. 创建包裹后最好能返回包裹id, 以供自动化测试使用

修改于: 8/11/2022, 3:17:56 PM