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 初次編輯
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章