OneCode2.0源码结构分析

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: OneCode12月10日正式更新了其V2.0版本。从OneCode的季度版本生命中,可以看到2.0版本还是一个重量级的版本,笔者在收到2.0更新后第一时间下拉了最新的代码。在参考了OneCode 的技术说明后,根据包结构来分析一下OneCode2.0的结构。


      OneCode今天(12月10日)正式更新了其V2.0版本。从OneCode的季度版本生命中,可以看到2.0版本还是一个重量级的版本,笔者在收到2.0更新后第一时间下拉了最新的代码。在参考了OneCode 的技术说明后,根据包结构来分析一下OneCode2.0的结构。

添加图片注释,不超过 140 字(可选)

一,OneCodeV2.0 更新说明

添加图片注释,不超过 140 字(可选)

(1)基线由1.1.2升级到了2.0

从中央仓库的OneCode版本来看,已经统一调整到了2.0版本。相应的Gitee 仓库也做了更新。

添加图片注释,不超过 140 字(可选)

(2)OCStuido 开发工具也变更了2.0版本

onecode/onecode低代码引擎

OCStuido 版本这次采用了一个新的版本号,onecode-all.

同时在版本提交日志中也显示改版本为完整版OneCode,并且在版本说明中简单介绍了包说明。

更新代码后,发现src下的源码数量也大大增加。

添加图片注释,不超过 140 字(可选)

(3)私有云部署包也统一调整到了2.0版本

这次私有云版本中,没有发现太多的更新。但经编译测试后和2.0版本还是可以兼容使用的。

二,OCStuido2.0 新更代码包结构说明

      这次OneCode更新,最主要的部分还是在OCStudio上开放的代码量上有了一个数量级上的提升,这对于对OneCode感兴趣的开发者而言大大减少了构建工程(以前版本完整源码可以从中央仓库自行解析编译)的工作量,可以快速的阅读调试OneCode 源代码。下面是笔者根据开放的源码包结构整理的功能模块图:

添加图片注释,不超过 140 字(可选)

三,领域驱动配置:com.ds.dsm

        OneCode-DSM工具集,是OneCode中一个重量级的工具集合。

(1)首页导航页

添加图片注释,不超过 140 字(可选)

   com.ds.dsm.IndexNav 导航页

@Controller@RequestMapping("/dsm/nav/")@MethodChinaName(cname ="DSM导航")@IndexAnnotation@LayoutAnnotation(transparent =false, type =LayoutType.vertical, items ={@LayoutItemAnnotation(panelBgClr ="#3498DB", size =28, pos =PosType.before, locked =true, moveDisplay =false, cmd =false)})publicclassIndexNav{     @CustomAnnotation(hidden =true, pid =true)    publicString projectVersionName;         @MethodChinaName(cname ="DSM建模")    @RequestMapping(method =RequestMethod.POST, value ="DSMInstNavTree")    @NavTreeViewAnnotation    @ModuleAnnotation(dynLoad =true, imageClass ="spafont spa-icon-conf", caption ="DSM建模")    @CustomAnnotation(index =1)    @ResponseBody    publicTreeListResultModel<List<DSMNavTree>>getDSMInstNavTree(String projectVersionName){        returnTreePageUtil.getTreeList(Arrays.asList(DSMNavItems.values()),DSMNavTree.class);    }}


从导航页的配置而言

RequestMapping("/dsm/nav/")

RequestMapping(method =RequestMethod.POST, value ="DSMInstNavTree")

页面资源地为:/dsm/nav/DSMInstNavTree

转换为OneCode .view的访问转换地址

dsm.nav.DSMInstNavTree.view

http://bpm.itjds.net/RAD/bpmVVVERSION0/dsm.nav.DSMInstNavTree.view

添加图片注释,不超过 140 字(可选)

也可以通过,Studio的仿真菜单进入

添加图片注释,不超过 140 字(可选)

DSM入口页

添加图片注释,不超过 140 字(可选)

(2)DSM包视图

添加图片注释,不超过 140 字(可选)

  • com.ds.dsm.repository资源库管理模块;
  • com.ds.dsm.aggreagtion领域模型构建模块
  • com.ds.dsm.view以及视图工厂配置模块

添加图片注释,不超过 140 字(可选)


仓储模型模块:主要功能是辅助用户将用户的数据库,外部API接口,以及已有的“代码”应用通过转换器转变为可被DSM识别的资源部格式。

领域模型模块:是DSM核心工具,在领域模型中导入的资源会同具体场景下的值对象,场景菜单、通用域服务根据具体的业务场景完成领域模型的建模工作。

视图工厂是领域模型的具体实现,在领域模型应用中建模输出的产物会通过出码工厂输出位视图应用,这些视图应用会通过视图工厂进一步加工处理输出为用户交互应用。

(3)DSM-Aggregation 领域模型

com.ds.dsm.aggreagtion 包结构

dsm.agg web资源地址

添加图片注释,不超过 140 字(可选)

功能应用配置

添加图片注释,不超过 140 字(可选)

(4)DSM-View 视图工厂

com.ds.dsm.view包结构

dsm.view web资源地址

添加图片注释,不超过 140 字(可选)


视图总览

添加图片注释,不超过 140 字(可选)

列表配置

添加图片注释,不超过 140 字(可选)

列表配置

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

表单配置

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

字段配置

添加图片注释,不超过 140 字(可选)

四,系统配置管理:com.ds.system

   (1)com.ds.system.SystemIndex 导航页

添加图片注释,不超过 140 字(可选)

@Controller@RequestMapping("/system/")@IndexAnnotation@LayoutAnnotation(transparent =false, type =LayoutType.vertical, items ={@LayoutItemAnnotation(panelBgClr ="#3498DB", size =28, pos =PosType.before, locked =true, moveDisplay =false, cmd =false)})publicclassSystemIndex{     @MethodChinaName(cname ="系统管理")    @RequestMapping(method =RequestMethod.POST, value ="SystemNav")    @NavTreeViewAnnotation    @ModuleAnnotation(imageClass ="xui-icon-bullet", caption ="系统管理")    @CustomAnnotation(index =0)    @ResponseBody    publicResultModel<SystemNav>getSystemNav(String projectId){        returnnewResultModel<SystemNav>();    }     @MethodChinaName(cname ="公式管理")    @RequestMapping(method =RequestMethod.POST, value ="FormulaManager")    @NavTreeViewAnnotation    @ModuleAnnotation(dynLoad =true, imageClass ="spafont spa-icon-function")    @CustomAnnotation(index =1)    @ResponseBody    publicTreeListResultModel<List<FormulaTypeItem>>getFormulaManager(String id){          }     @RequestMapping(method =RequestMethod.POST, value ="WebSiteTreeNav")    @APIEventAnnotation(autoRun =true    @NavTreeViewAnnotation    @ModuleAnnotation(imageClass ="spafont spa-icon-c-cssbox", dynLoad =true, caption ="模板站点")    @CustomAnnotation(index =2)    @ResponseBody    publicTreeListResultModel<List<DomainTempNavTree>>getDSMTempTreeNav(String id){             return resultModel;     }     @MethodChinaName(cname ="模板管理")    @RequestMapping(method =RequestMethod.POST, value ="CodeTemps")    @APIEventAnnotation(autoRun =true)    @NavTreeViewAnnotation    @ModuleAnnotation(imageClass ="spafont spa-icon-settingprj", dynLoad =true, caption ="模板管理")    @CustomAnnotation(index =3)    @ResponseBody    publicTreeListResultModel<List<JavaTempNavTree>>getTempManager(String id){              return resultModel;     }     @MethodChinaName(cname ="服务管理")    @RequestMapping(method =RequestMethod.POST, value ="ServiceBeanNav")    @NavTreeViewAnnotation    @ModuleAnnotation(imageClass ="spafont spa-icon-conf1", caption ="服务管理")    @CustomAnnotation(index =4)    @ResponseBody    publicResultModel<ServiceBeanNav>getServiceBeanNav(String projectId){        returnnewResultModel<ServiceBeanNav>();    }}

   (2)system.index.view Web导航地址

添加图片注释,不超过 140 字(可选)

       子系统管理

添加图片注释,不超过 140 字(可选)

 租户管理

添加图片注释,不超过 140 字(可选)

表达式管理

添加图片注释,不超过 140 字(可选)

模板站点管理

添加图片注释,不超过 140 字(可选)


出码模板管理

添加图片注释,不超过 140 字(可选)

微服务配置

添加图片注释,不超过 140 字(可选)


相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
运维 监控 测试技术
130 秒揭秘 EDAS 3.0 如何平滑应对突发流量高峰,为您的业务保驾护航
EDAS3.0的云原生架构是如何满足真实场景下的流控难题和单点故障引起的交易成功率下降的问题的?
9845 101
130 秒揭秘 EDAS 3.0 如何平滑应对突发流量高峰,为您的业务保驾护航
|
前端开发 JavaScript API
探究 React Hooks:如何利用全新 API 优化组件逻辑复用与状态管理
本文深入探讨React Hooks的使用方法,通过全新API优化组件逻辑复用和状态管理,提升开发效率和代码可维护性。
|
Serverless Python
如何根据身份证号码计算年龄-python
如何根据身份证号码计算年龄-python
684 3
|
存储 运维 数据可视化
【技术分析】低代码平台的专有存储技术
低代码是一个新兴的技术,有着非常明确而鲜明的技术特点,比如:拖拽组件、可视化编程、零代码编程等等。但传统软件企业在进行技术融合时却往往是困难重重,旧有的技术积累很难能继承应用过来。本文作为一组技术分析,来逐一分解低代码背后的支撑技术。今天我们给大家带来的一个专题分析是,低代码平台的专有存储技术。
|
Java 测试技术 Spring
SpringBoot配置加载顺序
SpringBoot配置加载顺序
1174 0
对灵敏度分析技术进行建模(Matlab代码实现)
对灵敏度分析技术进行建模(Matlab代码实现)
653 0
|
机器学习/深度学习 分布式计算 数据可视化
使用Python进行大规模数据处理和分析
总而言之,Python作为一种强大而灵活的编程语言,在大规模数据处理和分析领域有着广泛的应用。通过不断学习和探索,我们可以充分发挥Python的潜力,为解决现实世界的数据挑战做出更大的贡献。让我们继续深入学习、探索和创造,在数据科学的道路上不断前行!
|
数据采集 传感器 XML
LabVIEW和MES系统的智能化车间数据对接
LabVIEW和MES系统的智能化车间数据对接
314 4
|
小程序 安全 UED
百果园社区电商小程序开发:打造私域精准营销发展趋势
百果园借助社区电商小程序转型,拓展线上渠道,增强品牌形象,降低运营成本,适应市场变化。小程序提供实时购物、社群互动、商家入驻及优惠活动,强调用户体验、功能丰富性和安全性,成为品牌与消费者连接的新桥梁。
|
机器学习/深度学习 搜索推荐 数据挖掘
矩阵运算与分解:NumPy的高级应用
【4月更文挑战第17天】NumPy是Python数值计算基础库,支持高效矩阵运算和分解。本文介绍了NumPy的矩阵加减、乘法以及特征值、奇异值和Cholesky分解,并展示了它们在机器学习(如线性回归、PCA)、图像处理和科学计算中的应用。通过掌握这些高级功能,用户能更有效地处理矩阵数据,解决各种计算和分析任务。