我一直思考框架設計該如何簡單,如何降低開發者難度,最後想出了相處了一個比較滿意的框架設計。 框架大致分為 前端UI -後端API-資料庫: 前端UI和後端API通過DTO 模型交互 後端API和資料庫通過ORM 模型交互 資料庫以及ORM模型之間的關係: 鑒於項目可能復用多個資料庫,後端工程師可能需 ...
我一直思考框架設計該如何簡單,如何降低開發者難度,最後想出了相處了一個比較滿意的框架設計。
框架大致分為 前端UI -後端API-資料庫:
前端UI和後端API通過DTO 模型交互
後端API和資料庫通過ORM 模型交互
資料庫以及ORM模型之間的關係:
鑒於項目可能復用多個資料庫,後端工程師可能需要掌握多種資料庫SQL語句以及對應SQL語句優化,加大開發難度。
鑒於SQL語句掌握能力和SQL語句優化能力,我的覺得框架應該使用ORM技術 把 數據表拆解成ORM模型,模型與模型之間無關聯。
我們在代碼裡面獲取單表ORM模型,然後組裝成前臺需要的DTO模型。
這個想法取決於DDD領域聚合思想,為了降低領域開發模式,把每個單表看成聚合根。
這樣有一下幾個好處:
- 執行效率 前端語言的執行效率,和資料庫語言執行效率,都沒有後端執行效率高
- 優化難度 前端>資料庫>後端
- 問題複雜 問題高度內聚在後端,方便調試以及跟蹤
- 開發難度 開發人員只需要掌握對應開發語言,專註代碼邏輯和代碼優化
前端UI獲取的DTO模型和後端API獲取的ORM 模型之間的關係:
從資料庫獲取ORM 模型 可以直接通過Map 直接轉為簡單DTO模型,然後簡單DTO模型通過代碼組裝成 複雜DTO模型 傳輸給前端UI,完成DTO模型復用。
這個框架思路 不是為了阿裡騰訊構思,只為中小級公司構思,簡化問題流程,加快開發。