上一篇介绍了架构设计0代码引擎(二)-架构设计-优快云博客,本篇介绍详细设计
详细设计
本节详细介绍各模块的详细设计
构建模型
业务人员构建元模型,包括应用服务,业务对象和实体,业务逻辑,外部服务关联
模型
上图是emf ecore核心,拥有完善描述类模型的元素,但对于本平台特性,有以下不足,以及解决方案
> 方法嵌入业务逻辑代码,使用方法注解标记逻辑代码,生成阶段嵌入方法
> 集成中间件,使用模板引擎(JET),依赖中间件的springboot机制,注解,自动配置,组件扫描
> 关联导入对象(接口/服务,工具类) 实质是集成中间件的一部分,集成中间件后以本地服务关联
业务逻辑
“关键词”那节介绍贫血模型和充血模型,无论哪种模式,从代码物理特性看,逻辑实现是在方法内,通过数据运算,方法调用加工数据,方法调用也是数据运算,”控制”控制运算执行,本质上,逻辑代码实现是业务方法通过控制,运算和数据3要素实现
上图展示0代码平台实现业务逻辑的原理,
1 方法上下文 展示方法内可获取的数据,包括全局的常量和变量,传入的参数,数据库读取,远程方法读取的,运算新增方法内临时变量
2 协同是使用groovy或jse控制和运算;数据使用groovy或jse调用java对象获取,用户不需直接使用groovy或jse,下图是构建逻辑代码的设计
“构建业务逻辑” 最终构建CodeBlock对象,CodeBlock自包含,包括控制,运算和调用3类
代码生成
代码生成分4块,元模型,业务逻辑,持久层和关联对象,其中元模型生成应用服务类,业务对象类,实体类;业务逻辑构建上节介绍,持久层集成hibernate,关联对象集成spring cloud
模型类
emf负责模型类代码生成,用户构建模型,emf生成代码
持久层
持久层使用eclipse teneo组件,teneo组件是emf的下游组件,用于生成emf ecore的实体模型的基于hibernate的持久层,版本较低,多年没有维护,需要完全掌握源码
业务逻辑和关联服务
上图业务逻辑和关联代码生成的设计,构建CodeBlock,调用toJava方法,递归输出生成代码,嵌入到方法
关联服务依赖中间件集成,也是作为最后防线,若平台不能处理,可以由开发人员,导入平台
编译和打包
编译打包使用maven,平台以maven工程管理,本节介绍maven编译打包java api
MavenCli 使用该类可以像idea/eclipse,compile,package,install,deploy等操作
用户在这阶段可以导出工程,在工程上开发
导入类资源
平台可以导入已有包,通过包扫描器,自定义类加载器载入应用工程,建模时可以关联和使用
执行(TBD)
执行通常用于规则,以业务数据为事实,执行规则,获得决策结果;执行服务的关键,执行高吞吐,代码高容量
执行包括3个组件,网关,服务和代码库
中间件(TBD。。。)
0代码集成中间件