erupt api

2021年在工業軟件領域,團隊中推廣 erupt 框架做了一些應用,總體上效果非常不錯,讓團隊的開發成員可以很好的做到關注點分離,從持久化層的數據實體設計到領域層的邏輯疊加再到表現層的UI組件綁定。

在互聯網領域,它的應用可能會稍有限制,基於Hibernate的ORM模型,大數據量下的性能問題可能會比較突出。因而,會需要替換持久化層的實現方式,比如可以改爲基於MyBatis-Plus做兼容,以便得到更高的性能優化方面的可控性。

erupt 確實可以算是“低代碼”圈子的應用框架,這比市面上其它代碼生成器級別的解決方案更“低”,儘管它的View Model 的DSL是基於Java語言(某種意義上這更說明了加上註解後的Java語言的表達能力強,比較了 一圈下來,可能要回歸到XML的領域纔有得一拼),但是使用Java也是一個強項,因爲應用中總免不了各行業業務場景的領域化編碼,Java編寫的領域邏輯可以無縫複用基於Java的DSL,免去多餘的學習成本。

然而,慣性上,我總有一種造輪子的衝動,所以習慣於找一些視角嘗試整體性的瞭解erupt的設計原理或者思想。比如技術層面它在Spring 框架層的一些應用、JPA層、基於magic API的擴展層等,以及產品層面低代碼 ViewModel 層 DSL定義,另外還有一個視角:前後端的API接口規範,這是工程實踐層面。

DSL 概念;

  1. Erupt
    1. power
    2. RowOperation[] rowOperation
    3. Drill[] drills
    4. Filter[] filter
    5. Class>[] dataProxy
    6. Tree tree
    7. LinkTree linkTree
    8. KV[] param
    9. extra

erupt 定義的api 規範

  1. []core
    1. []EruptApi:/erupt-api
      1. []/version
      2. []/erupt-app
      3. []/erupt-machine-code
    2. []EruptBuild:/erupt-api/build
      1. []/{erupt}
      2. []/{erupt}/{field}
    3. []EruptComponent:/erupt-api/comp
      1. []/auto-complete/{erupt}/{field}
      2. []/choice-item/{erupt}/{field}
      3. []/tags-item/{erupt}/{field}
    4. []EruptData:/erupt-api/data
      1. []/table/{erupt}
      2. []/tree/{erupt}
      3. []/init-value/{erupt}
      4. []/{erupt}/{id}
      5. []/{erupt}/operator/{code}
      6. []/tab/tree/{erupt}/{tabFieldName}
      7. []/{erupt}/checkbox/{fieldName}
      8. []/{erupt}/reference-table/{fieldName}
      9. []/depend-tree/{erupt}
      10. []/{erupt}/reference-tree/{fieldName}
      11. []/validate-erupt/{erupt}
      12. []/extra-row/{erupt}
    5. []EruptDrill:/erupt-api/data
      1. []{erupt}/drill/{code}/{id}
      2. []/add/{erupt}/drill/{code}/{id}
    6. []EruptExcel:/erupt-api/excel
      1. []/template/{erupt}
      2. []/export/{erupt}
      3. []/import/{erupt}
    7. []EruptFile:/erupt-api/file
      1. []/upload/{erupt}/{field}
      2. []/uploads/{erupt}/{field}
      3. []/upload-html-editor/{erupt}/{field}
      4. []/upload-ueditor/{erupt}/{field}
      5. []/download-attachment
    8. []EruptModify:/erupt-api/data/modify
      1. []POST /{erupt}
      2. []PUT /{erupt}
      3. []DELETE /{erupt}/{id}
      4. []DELETE /{erupt}
      5. []
  2. []upms
    1. []EruptUser:/erupt-api
      1. []/login
      2. []/menu;先實現這個菜單的構造接口,就可以還原顯示完整的菜單;
      3. []/logout
      4. []/change-pwd
      5. []/token-valid
      6. []/code-img
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章