JAVA常用工具包、组件、json、excel、redis、email、db、error code

写在前面的话

  多年以来,参与了很多项目,每个项目又分为多个服务,每个服务可能就是一个工程(project),没有太好的工程治理,很多通用的组件、代码都是随处copy。之后就是任其自由发展,很难做到回溯和统一维护。现将这部分组件、代码整理,可以以jar的方式导入工程,亦可上传到私服以maven、gradle的方式依赖。

工程代码

代码可参考https://github.com/xiaojianhx/common

开发环境和工具

  • JDK:jdk-13.0.1(因eclipse尚未支持jdk14,故暂用jdk13)
  • maven:apache-maven-3.6.3
  • IDE:Eclipse IDE for Java Developers(Eclipse IDE 2020-03)

  虽然工具及时做了更新,但因能力和精力有限,代码的书写并未完全与时俱进,如jdk13的使用,并未体现新特征的精髓,待完善;

特殊说明

  • 本工程不集成大而全的功能,只是将日常工作中用的多、通用性强的功能片段抽取,形成模块。
  • 本工程中的方法均已在正式环境中使用,但在高并发环境下未做严格测试

工程结构

common
    ├── common-dbutils   // 数据库操作
    ├── common-email     // 邮件服务
    ├── common-excel     // excel读入导出操作
    ├── common-globle    // 定义所有的常量
    ├── common-json      // JSON工具类
    ├── common-root      // 父工程,统一管理所有依赖的jar
    ├── common-schedule  // 定时任务控制开关
    ├── common-redis     // redis操作
    ├── common-remote    // 远程操作系统操作
    ├── common-utils     // 常用工具类
    └── pom.xml
  1. common-root
      该工程是一个pom工程,只有一个pom文件,定义全局的编译、运行环境、仓库地址、依赖jar包版本,所有工程应该 [直接 | 间接] [继承 | 依赖] 该pom。
      该工程暂时放在common工程下,是common的parent。
  2. common-schedule
      定时任务控制开关,依赖spring。很多时候,本地调试代码时,不希望执行定时任务,每次注释代码太烦,可以引入该模块,用法如下:
# application.properties

# 开关:true-open;false-close;
scheduler.enabled=true
# 线程数
scheduler.pool.size=100
# 线程前缀
scheduler.thread.name.prefix=thread-
    @Scheduled(cron = "0/1 * * * * ?")
    public void execute() {
        System.out.println("1");
    }
  1. common-globle
      定义全局的常量。
  2. common-json
      json操作工具类。
  3. common-utils
      常用工具类,校验、字符串操作、时间格式化、随机数等;

写在后面的话

本人的编程思想

  1. 少即是多,依赖越少越好,层级越浅越好;
  2. 追新,常用工具及时安装最新版本;
  3. 洁癖,同一工程中,同一段代码不能出现两次(广义理解);没用的废代码及时清理;

本人的编程规范(本人先后就职于对日公司、华为、互联网行业):

  1. 对日公司:给日本人做项目,日本人对规范要求慎严,包括命名、注释(javadoc)、格式等等;
  2. 华为期间:增加了圈复杂度、重复代码率、测试覆盖率等一系列规范和检测;
  3. 临近几家互联网公司:因公司特点,要求进度而忽视质量,所以曾经一度严谨的规范也适当简化;

  基于上述几段经历,结合阿里的《Java开发手册》形成了当前的一套风格。只是在eclipse默认规范上修改两点,包括java和xml(因本人eclipse未装web插件,html、css、js等代码手动保证格式,写得多了,撩一眼基本就能发现问题):

  曾几何时,公司几度以本人规范为标杆,也有公司让本人推广规范。这是个费力不讨好的差事。基于大家的习惯,如果没有严格指令,肯定推不动,最后就不了了之。只求度己,不度人了。
  有兴趣的同事来交流,肯定知无不言言无不尽,其他的就睁一只眼闭一只眼了。但是参与本人主导的项目,则必须严格遵守要求。

  受周边同事影响,本人现今书写代码也未完全准守规范。

变更日志

  • 2020-05-23 20:23 初次编辑
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章