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