首页 > 编程知识 正文

项目代码在哪个网上查,入画独立设计平台

时间:2023-05-06 13:32:15 阅读:171375 作者:2449

一、背景需求1.1整体背景我在闲暇时间搭建了租赁平台,采用了springboot微服务的架构模式,同时结合服务化思想进行了代码实践,由于存在很多重复且效率低下的改变,闲暇时间也存在这种租赁平台作为开发者长期维持业余项目会产生很多进度延迟和效率问题,增加项目项目被遗弃的概率,对开发者来说也非常沮丧。 为了避免这种情况,我一方面鼓励建立一个使用平台,尽可能每天贡献代码,在适当的时候提高开发效率。 另一方面,也是为了利用该租赁平台进行微服务分库分库DDD领域的实践。 因此,最初的目标是建立大规模的微服务APP应用,这就需要大量构建微服务工程。 由于目前该平台的业务API主要以CURD类的接口为主,构建了支持微服务架构的生态支持分库表,支持sql生成管理,支持所构建即所得,所操作即所得在这个构建过程中业务开发和组件平台开发的大部分时间是串行的,所以迭代不是一直持续,而是优先解决业务开发过程中存在的效率问题。

1.2需求说明1 .支持单个库,库别表sql的生成管理(PS:业余玩家玩库别表也很简单,容易继续迭代) ) ) ) ) )。

2 .支持基于单库、分库表的总量代码生成

3 .支持基于单库、按库表的增量代码生成

4 .支持每个模块的代码生成。 例如,只生成某个表的服务层,或者只生成mapper层等)

基于spring、mybatis的原生框架生成的代码不依赖于诸如mybatis-plus之类的包装中间件代码

基于springboot项目的模型构建

7 .主要基于mysql数据库

二、技术选型2.1技术调研当我意识到我的微服务工程大部分可以用低码平台搭建时,我开始了一些技术调研,对一些现有的低码平台或脚手架进行了评估。 主要看到了以下开源产品:

https://gitee.com/je ECG/je ECG-boot

3359 gitee.com/make Java/easy code.git

3359 gitee.com/renren io/renren-generator.git

3359 gitee.com/zhoule IB 1412/j final-code-online.git

我的电池-生成器插件

虽然没有试用,但是经过仔细调查后的平台工具仍然不是我的理想或我想要的。 主要有以下理由。

1 .代码生成模块功能不充分

深入绑定框架(如mybatis-plus )或限定spring版本

3 .缺少可视化界面包括表结构的建立、表sql的生成、分库分表sql的生成、管理

4 .深度依赖编辑器(例如仅对应于idea ) ) ) ) )。

2.2技术选型获得好评后,我决定自己实现低代码平台。 在技术选型上也确实参考了一些其他的代码生成器的想法。 这里列出了我前期构建这个平台所依赖的技术框架:

数据库持久性层: mysql

可持续化框架: mybatis

微服务框架: springboot

代码文件模板: freemarker

三、设计方案3.1核心技术原理通过Mybatis链接数据库获取指定数据库中的表结构描述。 主要包括表名、表说明、字段名称、字段说明、字段类型

创建freemarker代码模板

在freemarker中将数据库表元数据渲染为代码模板并生成目标代码

3.2项目构建整个代码生成平台最初由三个模块组成,然后借鉴团队的数据库表设计习惯,将数据库表e-r图生成功能引入代码生成器中,形成单独的模块: coder maker-coder 之后将集成到codermaker-core工程项目中。

1.codermaker-core:通过数据库表结构和配置的代码模板生成项目代码

2 .代码生成器-数据库:基于数据库表结构或指定数据接口生成对应的数据模型e-r图(基于plantUML )

3.codermaker-dbops:数据库表结构运输工具。 根据配置的sql字段的内容为单个表或多个表或库表生成sql脚本,并管理每个APP发布中每个数据库的DDL语句。 它是包含库表配置但与数据源和中间件无关的最简单的springboot项目。

4 .名为4.codermaker-web:的项目是一个空壳项目,基于codermaker-core项目生成的代码在该项目中展示,所见即所得,所操作即所得。

3.3项目配置code maker.global.package=com.light snail.app.user.CRM.core//目标工程根软件包名称code maker.global

ame=snail_app_user_crm //数据库名称codemaker.pom.projectName=lightsnail-app-user-crm //项目应用名称codemaker.pom.groupId=com.lightsnail.app.user.crm.core //GAVcodemaker.pom.artifactId=lightsnail-app-user-crmcodemaker.pom.version=1.0.0.SNAPSHOTcodemaker.code.outpath=E:\workspace\newWorkspace\codeMaker\codemaker-web //目标工程输出目录codemaker.spring.parentversion=2.3.1.RELEASE //引用的springboot版本 3.4 接口设计

3.4.1 表结构生成接口(codemaker-dbops)

/** * 生成运维分库分表变更语句 * 对应resources sql文件夹下目录名 * @param appName 应用名称 * @param dbName 数据库名称 * @param opsName 操作 * @return */ @GetMapping(value = "/dbops") /** * 初始化应用表结构 * * @param appName 应用名称 * @param dbName 数据库名称 * @return */ @GetMapping(value = "/initshardingdb")

3.4.2 代码生成接口(codemaker-core)

/** * 生成模块的entity类 * @return */ @GetMapping("/getproject/entity") /** * 生成模块的vo类 * @return */ @GetMapping("/getproject/vo") /** * 生成模块的mapper类 * @return */ @GetMapping("/getproject/mapper") /** * 生成模块的service类 * @return */ @GetMapping("/getproject/service") /** * 生成模块的serviceimpl类 * @return */ @GetMapping("/getproject/serviceimpl") /** * 生成模块的mapperxml类 * @return */ @GetMapping("/getproject/mapperxml")   /** * 生成模块的controller类 * @return */ @GetMapping("/getproject/controller")   /** * 生成项目的test类 * @return */ @GetMapping("/getproject/test") /** * 生成项目表结构的e-r图 plantUML文件 * @return */ @GetMapping("/getproject/erpicture") /** * 生成所有表对应的项目代码--极简模式 * @return */ @GetMapping("/makeall") /** * 生成所有表对应的项目代码--极速模式 * @return */ @GetMapping("/makeallfast") /** * 生成指定的表对应的项目代码--极简模式 * @param tableNames 表名称,多个逗号分割 * @return */ @GetMapping("/makemodules") /** * 生成指定的表对应的项目代码--极速模式 * @param tableNames 表名称,多个逗号分割 * @return */ @GetMapping("/makemodulesfast") 3.5 架构图

以上架构图是发布了几个特性之后进行整理的,下面重点解释一下极简模式和极速模式的区别。

3.6 代码生成-极简模式

这里的极简模式生成的代码是最为纯净的代码,主要体现在下面几个方面:

vo,entity自动生成get/set方法--不依赖lombokcontroller,service,mapper层之间没有调用关系日志类自动集成slf4j--不依赖lombok3.7 代码生成-极速模式

这里的极速模式生成的代码是可以直接运行的,同时在已有代码上进行字段更新,迭代更快捷:

vo,entity自动带有lombok注解controller,service,mapper层之间有默认调用关系日志类自动lombok注解slf4j四、接入使用 4.1 使用流程

  五、未来规划 5.1 版本发布历史 实现codermaker-core代码生成功能 1.0.0实现数据库表sql生成功能 1.0.0实现数据库表e-r图生成功能 1.0.1实现代码生成极速模式 1.0.25.2 roadMap路线 codemaker-core增加代码生成快照功能codemaker-core全面梳理其他文件的生成依赖数据增加cola架构代码生成器功能增加可视化页面配置 + 下载代码功能集成https://github.com/pingfangushi/screw 的数据库文档能力生成dubbo服务接口代码

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。