loc框架設計原則

weixin_33782386發表於2018-07-26

什麼是框架?

我個人覺得基礎框架應該是遮蔽業務的底層的中介軟體,Java優秀的框架有SpringMvc, SpringBoot,在流行的微服務裡面,優秀的框架有SpringCloud和Dubbo,都是能夠很好的簡化業務開發人員對底層技術的瞭解。

公司需要什麼樣的框架

公司之前的服務都是依賴於SpringBoot和SpringCloud的,但是大部分人員對於SpringBoot和SpringCloud的瞭解程度有限,只是按照網上的入門文章進行使用,我覺得不能發揮出這些框架的優秀能力,也增加了業務開發人員學習和了解的成本。

在看了公司內部大量的專案之後,發現大家都是依賴了一大堆SpringBoot和SpringCloud的依賴,每個專案都配置了10多個相關的依賴,並且版本也都不會統一。 為了減少專案的複雜度,所以決定要基於SpringBoot和SpringCloud進行再一次的封裝,簡化開發人員的使用成本。

框架需要的內容

  1. 框架版本的統一管理
  2. 框架容易升級
  3. 基於開源社群,能夠對於底層依賴的SpringBoot和SpringCloud框架也進行快速升級
  4. 遮蔽非業務層面的所有配置
  5. 制定一些約定,來簡化配置檔案的編寫的難度
  6. 統一服務文件、註冊、發現、路由、日誌、監控、度量、追蹤服務等基礎功能
  7. 各個模組可以由業務方自行選擇使用,進行一定程度的打包出售,各個模組功能獨立、並且不相互依賴

統一框架版本

  1. 因為框架是基於SpringBoot和SpringCloud的,所以我們選擇簡介按照SpringBoot的starter的開發模式進行開發,並且通過parent模式和dependencies模式來統一管理所有常用的第三方依賴。
  2. 各個模組進行有效的打包整合,從而然後完成starter的縮減,最後僅僅提供了少數幾個starter(web、mysql、redis、kafka、job、wechat)來讓業務根據具體情況進行選擇。
  3. 不改變底層依賴第三方框架的使用方式,能夠使得開發人員快速上手。
  4. 有快速的搭建專案的腳手架,能夠快速開啟一個新的專案並且完成部署。
  5. 統一環境變數,並且通過環境變數來統一通用配置,業務開發不需要對於非業務的通用配置進行了解。
  6. 制定釋出流程,對於所有業務全部通過統一的釋出流程進行釋出,減少釋出環節的人工介入。

相關文章