Spring 项目风格

October 20, 2019 · View on GitHub

提交代码之前要做的

  • 做代码检查,看是否有哪里不小心多敲了一些字符
  • 提交勾选:Optimize imports
  • 检查 TODO 是否还有未完成功能

必须 Lombok

必须 mapstruct

YAML 优先 properties

POJO 规范

  • 必须使用 Lombok
  • 不允许使用基础类型:int、long、boolean 等
  • 不允许 isXXXX 开头,可以改为:boolIsDelete 或是根据数据库模型的:deleteEnum
  • 前端参数必须有 Hibernate Validator 注解
  • 包命名
  • pojo
    • entity(数据库映射)
    • vo(页面结果)
    • dto(接口响应)
    • param(接口请求)
    • bo(service 业务处理)
      • mq
      • cache
      • event

设计模式重要性

无状态

  • 保证可伸缩性

配置表、开关表的重要性

  • 尽可能满足需求多变的场景
  • 开关多样化可以尽可能避免回滚和多次发布

了解 io / cpu 优先级

  • io 优先
  • cpu 优先
  • 数据库读优先
  • 数据库写优先
  • 更新与新增操作频率比
    • 更新的复杂度高于新增

了解监控数据

单元测试

压力测试

JProfiler / VisualVM

CPU 耗时 / 火焰图

OOM

Maven

  • 阿里云国内镜像
  • release 和 snapshot 的版本要区分好
    • 在开发阶段可以用 snapshot,发到生产必须是 release
    • 每迭代一个版本结束,对应的 pom 版本号都要跟着调整,不允许遗漏,并发到私服

配置表思维

重构时机

  • 不允许在开发新功能、改 Bug 阶段进行重构