hy-generator

所属分类:自动编程
开发工具:Others
文件大小:0KB
下载次数:0
上传日期:2023-11-06 14:25:06
上 传 者sh-1993
说明:  基于React+SpringBoot+Vert.x React编程的定制代码生成项目。
(A customized code generation project based on React + SpringBoot + Vert.x reactive programming.)

文件列表:
hello-generator-basic/ (0, 2023-11-25)
hello-generator-basic/generator (94, 2023-11-25)
hello-generator-basic/generator.bat (90, 2023-11-25)
hello-generator-basic/pom.xml (2599, 2023-11-25)
hello-generator-basic/src/ (0, 2023-11-25)
hello-generator-basic/src/main/ (0, 2023-11-25)
hello-generator-basic/src/main/java/ (0, 2023-11-25)
hello-generator-basic/src/main/java/com/ (0, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/ (0, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/Main.java (382, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/ (0, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/CommandExecutor.java (963, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/command/ (0, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/command/ConfigCommand.java (914, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/command/GenerateCommand.java (1237, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/command/ListCommand.java (763, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/example/ (0, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/example/ASCIIArt.java (960, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/example/Login.java (893, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/example/SubCommandExample.java (1804, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/pattern/ (0, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/pattern/Client.java (641, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/pattern/Command.java (82, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/pattern/Device.java (321, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/pattern/RemoteControl.java (244, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/pattern/TurnOffCommand.java (252, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/cli/pattern/TurnOnCommand.java (249, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/generator/ (0, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/generator/DynamicGenerator.java (2314, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/generator/MainGenerator.java (1506, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/generator/StaticGenerator.java (2986, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/model/ (0, 2023-11-25)
hello-generator-basic/src/main/java/com/hanyang/model/MainTemplateConfig.java (343, 2023-11-25)
hello-generator-basic/src/main/resources/ (0, 2023-11-25)
hello-generator-basic/src/main/resources/templates/ (0, 2023-11-25)
hello-generator-basic/src/main/resources/templates/MainTemplate.java.ftl (871, 2023-11-25)
hello-generator-basic/src/main/resources/templates/myweb.html.ftl (481, 2023-11-25)
hello-generator-basic/src/test/ (0, 2023-11-25)
... ...

# Hello - 定制化代码生成 > 该项目目前处于制作阶段,项目会持续开发完善,感谢大家的关注支持! ## 项目介绍 1)第一阶段,制作属于自己的 `本地代码生成器`,是一个 **基于命令行的脚手架**,能够根据用户的交互式输入快速生成特定的代码。 2)第二阶段,开发 `制作代码生成器的工具`。比如有一段常用的项目代码,使用该工具,可以快速把项目代码制作为代码生成器,将大幅提高工作效率! 3)第三阶段,开发 `在线代码生成器平台`。可以制作发布自己的代码生成器,还可以在线使用别人的代码生成器,甚至可以共享协作! ## 解决的问题 1)代码生成器本身作用就是自动生成常见、重复性的代码片段,**解决重复编码、效率低下等问题**。 2)虽然网上有很多代码生成器,但都封装好了,很多时候还是 **无法满足实际开发的定制化需求**。 3)在团队开发中,要生成的代码可能是需要频繁变化和持续更新维护的。如果有一个线上平台来维护多个不同的代码生成器,支持在线编辑和共享生成器,在提高开发效率的同时、将有利于协作共建,打造更高质量的代码生成器。 ## 技术选型 ### 前端 - React 开发框架 + 组件库 + 代码编辑器 - 前端工程化:ESLint + Prettier + TypeScript ### 后端 - Java SpringBoot + MySQL + MyBatisPlus - Java 命令行应用开发 - FreeMarker 模板引擎 - Vert.x 响应式编程 - Caffeine + Redis 多级缓存 - 分布式任务调度系统 - 多种设计模式 - 多种系统设计技巧 - 对象存储 ## 项目设计 ### 代码生成器的核心原理 - 参数 + 模板文件 = 生成的完整代码 比如参数: ```java 作者 = 九思 ``` 模板文件代码: ```java ----------- 我是 ${作者} ----------- ``` 将参数注入到模板文件中,得到生成的完整代码: ```java ----------- 我是 九思 ----------- ``` 如果想要使用这套模板生成其他的代码,只需要改变参数的值即可,而不需要改变模板文件 --- ### 第一阶段 - 本地代码生成器 目标是做一个本地(离线)的代码生成器,实现一个简易的 Java ACM 模板项目的定制化生成 #### 业务流程 1)准备用于制作代码生成器的原始代码(比如 Java ACM 模板项目),用于后续生成 2)开发者基于原始代码,设置参数,编写动态模板 3)制作可交互的命令行工具,支持用户输入参数,得到代码生成器 jar 包 4)使用者得到代码生成器 jar 包,执行程序并输入参数,从而生成完整代码 流程图如下: ![](https://kolin-blog.oss-cn-shanghai.aliyuncs.com/blog/202311111807139.jpg) #### 实现思路 1)先根据本地项目,扫描文件树,实现同样的静态代码生成 2)根据本地项目,预设部分动态参数、编写模板文件,能够传入配置对象进行生成 3)制作可交互的命令行工具,接收用户输入的参数,并动态生成代码 4)封装制作代码生成器 jar 包文件,并简化使用命令 ### 第二阶段 - 代码生成器制作工具 目标是做一个本地的代码生成器制作工具,能够快速将一个项目制作为可以动态定制部分内容的代码生成器。并且以一个 SpringBoot 初始化项目模板(Maven 项目)为例,演示如何根据自己的需要动态生成 Java 后端初始化项目 #### 业务流程 1)准备用于制作代码生成器的原始代码(比如 SpringBoot 项目模板),用于后续生成 2)开发者基于原始代码,**使用代码生成器制作工具**,来快速设置参数、生成动态模板 3)**使用代码生成器制作工具**,动态生成代码生成器 jar 包 4)使用者得到代码生成器 jar 包,执行程序并输入参数,从而生成完整代码 流程图如下: ![](https://kolin-blog.oss-cn-shanghai.aliyuncs.com/blog/202311111807299.jpg) #### 实现思路 1)使用独立空间来存储管理要生成的原始文件、动态模板文件等 2)使用配置文件来记录要生成的参数和模板文件信息、自定义配置等 **元信息** 3)代码生成器制作工具需要有多种可单独或组合使用的功能,比如从原始文件中抽取参数、动态生成命令行工具、打 jar 包等 ### 第三阶段 - 在线代码生成器平台 打造一个在线代码生成器平台,可以理解为代码生成器的 **应用市场**。所有人都能发布、使用、甚至在线制作自己的代码生成器 #### 业务流程 1)获取用于制作代码生成器的原始代码(手动准备或者远程拉取代码) 2)开发者基于原始代码,使用 **在线代码生成器制作工具**,来快速制作代码生成器 3)开发者发布代码生成器至平台 4)使用者在平台上搜索代码生成器,支持在线使用或者下载离线 jar 包(甚至还可以支持接口调用) 完整业务流程图如下: ![](https://kolin-blog.oss-cn-shanghai.aliyuncs.com/blog/202311111807495.jpg) #### 实现思路 1)使用 Web 开发框架实现代码生成器信息的增删改查 2)将本地的配置和文件 **上云**,存储到数据库、对象存储等云服务 3)通过可视化界面来操作第二阶段的代码生成器制作工具,复用阶段二的成果

近期下载者

相关文件


收藏者