天画-低代码平台(codeMaker)V3版本发布内容

一、背景

天画-codeMaker V3预览版本发布完成之后,受到了一波关注。同时对V3的整体版本也希望完成组件化架构升级,解决小伙伴试用过程中出现的一些问题。本次发布的内容会有点多,在此开发过程中催生了另外一个项目的诞生–Javs。所以这次会有4-5篇文章介绍天画在本次迭代中的一些项目技术实现和架构方面的内容。

二、发布内容

2.1 需求列表实现情况

  1. 支持在调用时序中增加自定义流程控制语句如if else,fori,fore,fors,filter,mappingby,groupby(该方案容易导致时序图过于细化同时时序图不容易表达代码化的东西,已通过javsScript解决)
  2. 支持可配置化的多种入参校验模式策略(方案设计)
  3. 支持在plantuml领域文档中增加方法注解并解析生成到项目代码里(transactional,lock,logrecord注解等)
  4. 降低对数据库链接的强依赖,以数据库e-r图或者excel表作为数据库元数据信息的来源(链接默认数据库即可)
  5. 自定义代码元素模板/片段,并融入到代码生成流程中,进一步开放代码生成能力接口(方案设计)(代码元素模板自定义实现完成)
  6. 自定义代码元素模板/片段,并融入到动态调用时序中(同第一点,代码片段可能需要结合JavsScript构建方法内容)
  7. 在代码生成流程中调用时序中增加代码段(同第一点)
  8. 在代码生成流程中调用时序识别范型
  9. 增加配置项相关代码生成(方案设计)
  10. 将数据库sql文件复制到项目工程里
  11. 将plantUMl文档调用时序文档复制到项目工程里
  12. 打通语雀等api文档管理软件(技术上存在问题,不一定完全兼容)
  13. 管理pom依赖,走自动生成,统一maven技术栈
  14. 基于plantUML 的e-r图模式构建数据库模型
  15. 支持mybatis-plus组件,网关组件,脚手架等案例适配(mp,liteflow)
  16. 使用map+function重构各个应用类型下的代码生成逻辑
  17. 支持每个组件的配置项同步到项目工程中
  18. 新建codemaker-javs集成javs引擎
  19. 增加参数配置是否集成javs并生成javs脚本项目
  20. 支持纯数据库模式引入配置信息生成,自定义类信息生成,支持自定义组件导入
  21. 支持极速模式引入配置信息生成,自定义类信息生成,支持自定义组件导入

2.2 配置变更说明

2.2.1 application.properties配置新增

#是否链接目标数据库,默认是,不链接则需要在resources/er-plantuml文件夹下创建对应项目应用的plantuml e-r图文档,
#内部融合了codemaker-dberparse模块的功能可以解析并实现不链接具体应用的数据库而实现代码生成
#application.global.linkdb=true
application.global.linkdb=true


#是否启用javs脚本来辅助代码生成,默认为false
application.javsscript.enable=false

2.2.2 projecttemplate-X.properties配置变更

#目标工程输出目录,这里可以与code-maker项目同一个工作空间,也可以指定自定义的代码目录
cola.code.app.project.path=/Users/shenshuai/scworkspace/myspace/code-maker


#目标工程输出目录,这里配置可以去掉,不再在固定项目模版下进行生成
#cola.code.outpath.cola-adapter=/Users/shenshuai/myspace/code-maker/codemaker-cola/cola-adapter
#cola.code.outpath.cola-infrast=/Users/shenshuai/myspace/code-maker/codemaker-cola/cola-infrast
#cola.code.outpath.cola-app=/Users/shenshuai/myspace/code-maker/codemaker-cola/cola-app
#cola.code.outpath.cola-domain=/Users/shenshuai/myspace/code-maker/codemaker-cola/cola-domain
#cola.code.outpath.cola-client=/Users/shenshuai/myspace/code-maker/codemaker-cola/cola-client
#cola.code.outpath.cola-start=/Users/shenshuai/myspace/code-maker/codemaker-cola/cola-start
#cola.code.outpath.cola-feign-api=/Users/shenshuai/myspace/code-maker/codemaker-cola/cola-feign-api



#应用级代码参数dto,vo所需要的参数验证逻辑构建bean,内置五种实现
#支持validateAopService,validateJSRHibernateService,validateParamService,validateUtilService,validateServiceValidator
cola.component.validate.beans=validateParamService,validateServiceValidator


#代码工具类注册,项目初始化时可以帮助初始化对应的工具类
#后面生成代码的时候可以删掉工具类,只专注于生成业务代码
#格式说明 eg:BaseEvent:core 前面是需要初始化的类,后面是这个类放到哪个模块下
cola.component.init.clazz=BaseEvent:domain,Application:start,BaseController:adapter,PageBO:domain,SpringApplicationContext:domain,AppEventPublisher:domain,LockA:domain,MqHandler:domain,IdemPotent:domain

#项目各个模块需要依赖的pom gav配置
#cola.component.init.pom=apiresult:adapter,apiresult:client,hutool-core:app,hutool-core:adapter,apiresult:feignapi,mybatis-plus:infrast,liteflow:domain,rocketmq:infrast,springboot-redis:infrast
cola.component.init.pom=apiresult:adapter,apiresult:client,hutool-core:app,hutool-core:adapter,apiresult:feignapi,mybatis-plus:infrast,springcloudalibaba-rocketmq:infrast

#自定义ftl代码元素,eg ftlFileName:classType:moduleName
cola.code.template.custom.ftl=validator:class:app,cmp:class:app

#项目各个模块需要导入的配置文件
cola.component.init.config=application_properties:start,log4j_properties:start,mybatis-config_xml:infrast

2.3 coderman-utils

codeMaker在生成代码的过程中默认会使用coderman-utils做公共封装工具类的演示,所以这里需要说明的是如果出现相关异常则需要把coderman-utils工具项目down到本地进行安装,项目地址如下:https://gitee.com/codergit.com/javautils

最新版本如下:

<dependency>
  <groupId>com.coderman.utils</groupId>
  <artifactId>coderman-utils</artifactId>
  <version>1.0.5-SNAPSHOT</version>
</dependency>

2.4 天画-Javs

javs项目是在思考如何更细的进行代码生成(比如if,foreach等)而进行构建的,类似于一个伪代码解析引擎,而对应的伪代码语言你可以认为是java 方面的script,命名上则是JavsScript。这是一个很有趣的尝试,后面的文章会详细揭开其面纱。本次发布的javs项目内容则是JavsScript解析引擎内容,项目地址如下:

https://gitee.com/sky-painting/javs

2.5 项目代码地址

本次发布内容已合并到主干,最新完整V3版本架构图已出炉。

https://gitee.com/sky-painting/code-maker


原文始发于微信公众号(神帅的架构实战):天画-低代码平台(codeMaker)V3版本发布内容

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/241505.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!