# Go语言通用代码生成器:仙童 **Repository Path**: windyzone/Fairchild ## Basic Information - **Project Name**: Go语言通用代码生成器:仙童 - **Description**: Go语言通用代码生成器:仙童,使用gin Web框架,支持MariaDB,MySQL8,Oracle,PostgreSQL四种数据库,支持Excel,PDF数据导出。已支持生成Vue前端。 这种代码生成器是一种动词算子式代码生成器,通过域对象和各种动词算子的组合生成各种功能。采用电子表格形式的SGS2超级语言驱动。可以一键生成弹性登录模块功能。 - **Primary Language**: Go - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 19 - **Created**: 2025-02-19 - **Last Updated**: 2025-02-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Go语言通用代码生成器:仙童 ### 动词算子式通用代码生成器阵列全面开源 动词算子式通用代码生成器阵列已全面开源。本通用代码生成器的两个Jar软件依赖如下,皆已全部开源: 曲速引擎前端代码生成器:[https://gitee.com/jerryshensjf/WarpEngine](https://gitee.com/jerryshensjf/WarpEngine) 表反射引擎ReflectTable: [https://gitee.com/jerryshensjf/ReflectTable](https://gitee.com/jerryshensjf/ReflectTable) ### 项目简介 Go语言通用代码生成器:仙童,基于Java通用代码生成器:光的架构。 生成的代码基于go语言,使用gin作为web框架。目前支持MariaDB,MySQL,PostgreSQL和Oracle四种数据库。支持生成Vue和ElementUI的基于Node.js的独立前端。支持Excel,PDF两种数据导出格式。 #### 项目图片 ![Image description](https://images.gitee.com/uploads/images/2021/1104/210826_16fb1ca2_1203742.jpeg "fc2.jpeg") #### 最新大版本号 新的大版本号是仙童3.0.0 特菲提 Tefiti短名TFT。对标java通用代码生成器光3.0.0特菲提之心和Rust通用代码生成器紫莲。将在数月间启动开发。 特菲提是南岛民族神话中的创造女神,她创造了天地,海洋和海岛,但是如果她失去了特菲提之心的话,她就会变成岩浆恶魔厄卡。 ![输入图片说明](tft40.jpg) 正在研发的最新大版本号是仙童2.4.0 电音仙女 TechnoFairy 短名TF。对标java通用代码生成器光2.4.0电音之王和Rust通用代码生成器红莲。 Golang通用代码生成器仙童,2.4.0电音仙女尝鲜版十二。版本彻底增强修复了哑数据模式。并有更多测试修复。 Golang通用代码生成器仙童,2.4.0电音仙女尝鲜版十一。版本彻底增强修复了数据库自动反射功能。并有更多测试修复。 Golang通用代码生成器仙童,2.4.0电音仙女尝鲜版十。版本增强修复了数据库自动反射功能,修复了多对多数据加载。增强了复数字典,新加了SGS2模板。 Golang 通用代码生成器仙童 2.4.0 电音仙女尝鲜版九。此版本支持完善的数据库自动发射功能。大大完善了数据与元数据编辑器功能,是一个重要的版本更新。 Golang通用代码生成器仙童,电音仙女尝鲜版八,此版本增强修复了数据库自动反射功能。更新修复了前端代码生成器无登录模块时的错误。修复了多对多候选的缺陷。修复了清洗登录数据功能。 Golang通用代码生成器仙童,电音仙女尝鲜版七,此版本测试修复了PostgreSQL数据库自动反射功能。此版本更新修复了前端代码生成器,并修复了前端多对多界面的缺陷。 Golang通用代码生成器仙童,电音仙女尝鲜版六,此版本新增了数据库自动反射功能,可以为遗留数据库配上操作软件。此版本增强了模板向导界面的编辑器功能,可以不清空数据的情况下编辑项目的元数据和数据。可以切换域对象和枚举,可以清洗登录数据。此版本新增了多对多候选功能,支持多对多候选的编辑,持久化和反射功能。此版本彻底修复了枚举和哑数据功能。并有前端界面更新。 ![输入图片说明](tf2.jpg) ### 百度话题 #通用代码生成器# ### 重点组件和功能 - 动词算子 - 域对象 - 棱柱 - 项目 - 时空之门前端代码生成器引擎 - 弹性登录模块 - Grid页生成模块 - 多对多生成模块 - 数据库脚本生成模块 - 动态椰子树功能群 - 动词否定功能群 - 字段否定功能群 - 高级定制功能群 - 部分生成功能群 - 自动生成差异版本功能群 - 上传生成界面 - 模板向导生成界面 - 自动生成差异版本生成界面 - Excel数据导出功能 - PDF数据导出功能 - 数据库后端模式 - 数据库工具模式 - 哑数据模式 - 数据库自动反射功能 ### 开发测试环境 - jdk 21 - Apache Tomcat 9 - Node.js 21, 18, 14 - golang 1.22 - MariaDB 15.1 - MySQL 8 - PostgreSQL 16 - Oracle 11 ### 安装教程 - 先装好open jdk 21和Apache Tomcat 9,如果您从源码编译代码生成器还需要事先装好Apache Maven - 下载编译好的Golang通用代码生成器仙童的war包,或者下载源码,解压后使用mvn install命令编译,得到代码生成器的war包 - 把代码生成器的war包的名字改短,成为Fairchild.war,并放置在Apache Tomcat 9的webapps目录下 - 启动Apache Tomcat 9 - 访问http://localhost:8080/Fairchild/ - 即可使用代码生成器 ### 后端代码生成物运行 - 使用代码生成器生成一个示例或自己的SGS2模板,得到两个代码生成物,一个前端,一个后端 - 将后端项目下载并解压 - 根据您的数据库选项,配置好您后端的数据库,并使用后端代码生成物的sql文件夹下的数据库脚本完成建库建表并加载初始化数据 - 您需要检查后端代码生成物内的配置文件,确认数据库和用户名密码的正确性 - 您需要安装配置好Golang 1.20或其他兼容版本的Golang环境 - 在后端代码生成物的根目录下运行go mod tidy - 在后端代码生成物的根目录下运行go mod download - 在后端代码生成物的根目录下运行go mod vendor - 在后端代码生成物的根目录下运行go run Server.go - 启动完毕后访问后端代码生成物,http://localhost:8081 ### 前端代码生成物运行 - 使用代码生成器生成一个示例或自己的SGS2模板,得到两个代码生成物,一个前端,一个后端 - 将前端代码生成物解压 - 确认您已经安装好和您选择的Nodejs版本相容的前端Nodejs环境 - 使用npm install -registry=https://registry.npm.taobao.org 安装Nodejs依赖包 - 如果您使用的是Nodejs 21和Nodejs18,请运行命令:export NODE_OPTIONS=--openssl-legacy-provider - 运行命令:node --max-http-header-size=1000000 ./node_modules/.bin/webpack-dev-server --inline --progress --config build/webpack.dev.conf.js - 如此访问前端代码生成物,http://localhost:8000/ ### 百度话题 #通用代码生成器# ### 代码生成器截图 代码生成器正在研发中,2.4.0 尝鲜版十二已发布。 ![Image description](https://images.gitee.com/uploads/images/2021/1112/202857_c7a40dc0_1203742.png "Fairchild_interface.png") ![Image description](https://images.gitee.com/uploads/images/2021/1112/202911_c2b9a341_1203742.png "fairchild_xlsGen.png") ### 电音仙女尝鲜版十二下载 二进制发布包下载地址: [https://gitee.com/jerryshensjf/Fairchild/attach_files](https://gitee.com/jerryshensjf/Fairchild/attach_files) ### 电音仙女最新视频 电音仙女尝鲜版十二介绍视频请见: [https://www.bilibili.com/video/BV1Gc2KY8E4P/](https://www.bilibili.com/video/BV1Gc2KY8E4P/) 电音仙女尝鲜版十一介绍视频请见: [https://www.bilibili.com/video/BV1ET4wecEBk/](https://www.bilibili.com/video/BV1ET4wecEBk/) 电音仙女尝鲜版九介绍视频请见: /BV1jKHgeKEjP/](https://www.bilibili.com/video/BV1jKHgeKEjP/) 电音仙女尝鲜版八 [https://www.bilibili.com/video/BV11maXeYE12/ [https://www.bilibili.com/video](https://www.bilibili.com/video/BV11maXeYE12/) [https://www.bilibili.com/video/BV1LJvve6Ed9/](https://www.bilibili.com/video/BV1LJvve6Ed9/) 电音仙女尝鲜版七 [https://www.bilibili.com/video/BV1eT421a7j5/](https://www.bilibili.com/video/BV1eT421a7j5/) 电音仙女尝鲜版六 [https://www.bilibili.com/video/BV1Sr421c7zY/](https://www.bilibili.com/video/BV1Sr421c7zY/) ### 仙童的安装运行 仙童是使用Java语言写成的代码生成器。运行仙童您需要装好Java8和安装好Tomcat9或8.5应用服务器。并把仙童的war包部署在Tomcat的webapps目录下。 代码生成物的运行还需要安装好Go语言开发环境,您要使用go mod管理依赖,并把代码生成物解压在go语言工作空间的src文件夹的一级子目录下。还需要对应的数据库服务器运行代码生成物的建库sql脚本。 前端代码生成物的运行需要装好node.js运行环境并安装js依赖库。 ### Vue独立前端截图 ![输入图片说明](Fc_login.png) ![输入图片说明](fc_list.png) ![输入图片说明](fc_img.png) ![输入图片说明](fc_mtm2.png) ### 代码生成物截图 ![Image description](https://images.gitee.com/uploads/images/2021/1122/151921_f4271962_1203742.png "fc_grid.png") ![Image description](https://images.gitee.com/uploads/images/2021/1122/151935_cf6c7223_1203742.png "fc_mtm.png") ### 源码编译用户指南 通用代码生成器已经支持自己编译源码,我已把原来缺的前端代码生成器的jar包上传。支持大家自行编译源码。 需要注意的是,现在我的开发平台是Fedora 37上的openjdk 17。所以大家编译源码最好使用openjdk17。编译好的war包运行在apache tomcat 9.0上。 已有jdk8的用户报告默认下载的代码生成器war包在他的平台上无法运行。您如果遇到类似问题请报告。我的电子邮件是:jerry_shen_sjf@qq.com 附openjdk 17下载地址: [https://jdk.java.net/java-se-ri/17](https://jdk.java.net/java-se-ri/17) ### 使用前端功能的注意事项 由于图片文件比较大,原来前端使用cnpm instll安装类型,npm run dev运行有所改动,改为先使用npm install --registry=https://registry.npm.taobao.org安装类库,出错后使用cnpm install安装类库, 使用node --max-http-header-size=1000000 ./node_modules/.bin/webpack-dev-server --inline --progress --config build/webpack.dev.conf.js  运行系统。 您也可以从安装好的本系列代码生成器的前端项目中拷贝node_modules目录,即可运行前端。 #### node-sass不兼容的解决办法 办法一: ``` npm uninstall node-sass npm install sass-loader npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ ``` 办法二: ``` npm uninstall sass-loader node-sass //卸载 npm install sass-loader@7.3.1 node-sass@4.14.1 --save-dev //安装对应的版本 ``` ### 动词算子式代码生成器的应用场景 #### 1.项目前期 通用代码生成器是一种自动化编程软件,是一种先进的编译系统。它具有表级抽象。把系统抽象为域对象,枚举,弹性登录模块,复杂版面和图形报表。使用通用代码生成器完成项目前期,比直接使用对应的高级语言快的多,也方便的多。 在常规的项目开发阶段,可以分为前期,中期和后期。前期完成设计,数据库设计,项目初始化,数据库初始化和CRUD等常用功能的开发。 中期是各种业务功能的开发。 业务功能开发完成后,项目即进入后期。后期主要是测试,修错。完成项目Change Request和基线化,代码冻结。构建软件发布包,给客户安装,用户培训等等。 当客户签章认可软件交付物,软件的开发阶段就结束了,进入了软件的售后服务阶段。 通用代码生成器对软件开发而言,在项目前期的价值最大。它可以把月余的项目前期压缩到短短数日。从而为您的设计和开发增加数周的时间。用于设计,您可以更加详细。用于开发,大大缓解开发时间的紧张。而且,由于通用代码生成器的高生产率,您可以采用多轮设计,采用迭代式的项目设计循环,使设计阶段结束时,系统更全面更一致,同时仍然可以节约数周的时间帮助开发阶段。 通用代码生成器为项目全周期迭代式的使用通用代码生成器做了优化。它可以精确的控制代码生成物。可以按水平层级或者按竖直功能选择性的输出代码生成物,并可以同时使用水平和竖直的控制功能。最强大的是,您可以上传同一个项目的不同时期的SGS2模板,系统会对比两个版本,自动生成两个版本的差异部分,而一致的,它不输出。利用这个功能,您可以定向,只修改更改的部分,结合归并工具的功能,可以成数量级的提高劳动生产率。 #### 2.快速原型 对项目经理,产品经理和售前工程师而言,开发快速原型是一种常见的需求。使用通用代码生成器,您可以更好,更快的开发系统的快速原型。通用代码生成器对完成CRUD和登录系统阶段的快速原型比手工编程快的多,典型情况,您可以使用一天时间完成如此规格的快速原型,而直接编程,您可能至少需要两周时间才可以达到同样的完成度。故使用通用代码生成器,您可以更快的完成快速原型,您也有更多的时间,使您的原型达到更高的完成度。 并且,通用代码生成器有专门为快速原型设计的哑数据模式。此模式不使用数据库,而是使用硬编码的哑数据作为数据来源,它方便您给不同的客户多次演示,不需要担心数据遗留问题。只需要重新启动,数据即回归到原始数据,没有搞错演示数据的烦恼。而且,您可以和您的客户共享此快速原型。客户可以深入研究此快速原型,但无法直接使用此快速原型,因为此快速原型没有数据持久化功能。对双方都很方便。 #### 3.遗留项目反向工程 如果您有一个遗留项目,要重新开发,或者源代码遗失,或者需要重新开发,但是希望复用原来的数据,并加快开发。 如果您的项目是通用代码生成器生成的,如果您保留了它的SGS源文件或SGS2的Excel模板,您可以使用这些资源重新生成。 但是大多数遗留项目都没有这些资源,或者本来就不是通用代码生成器生成的。这种情况下,您只需要有系统的数据库,并且,这个数据库是MariaDB,MySQL或者PostgreSQL的。您就可以使用Rust通用代码生成器莲花的数据库自动反射功能来反向工程这种遗留项目。借助这个功能,您可以把一个数据库反射为一个莲花的Project。并可以进一步将数据库反射为一个Rust语言项目或者一个莲花的SGS2模板。 借助Java通用代码生成器光和Golang通用代码生成器仙童的Rust语言兼容性。您可以把这个莲花的SGS2模板生成为Java语言项目或Golang语言项目。 这个数据库自动反射功能可以保留原系统的数据,您不需要重新开始。 #### 4.跨编程语言翻译 如果您有一个Java工程,想把它移植到Rust或Golang语言中去,希望尽可能加快研发速度。 如果您的系统是通用代码生成器开发的,保留了系统的SGS源文件或者SGS2的Excel模板,您可以使用这些源文件或模板结合您的目标语言生成新语言的代码生成物,以加速新语言的应用程序的开发。 如果您没有保留此源文件或模板,或者您的应用系统是手工搭建的或使用了其他来源。您可以使用数据库自动反射功能达到需求。如果您使用的是MariaDB,MySQL或者PostgreSQL。您可以使用Rust通用代码生成器莲花新版本的数据库自动反射功能,将数据库反射成Rust应用程序,您也可以将数据库反射为一个SGS2的Excel模板。而后通过Java通用代码生成器光或Golang通用代码生成器的Rust语言兼容性功能,将此SGS2模板编译成Java或Golang的应用程序,在此过程中,您可以保留数据库中的所有数据,不必从零开始。 #### 5.任意需求应用急就章 在中国文化中,如果您在任何的政府,商业或者私人事务上需要表明身份。您需要一枚自己的私章。如果在必须的场合,您没有此私章。如果您知道如何刻写图章,可以临时使用普通的石料甚至萝卜,肥皂等等,刻写一个临时性的图章使用,这就是所谓的急就章。 通用代码生成器也有类似功能。如果您有一个业务或者需求,但是您没有现成的电子商务系统,您往往是使用Excel表格或者Acess数据库来完成这些功能的簿记和管理工作。但这种方法有明显缺陷,首先,如果随着业务的流转,多人手头有不同的Excel表单,如果数据不一致,您很难找出正确的答案,而且,没有统一的密码和登录系统,容易泄密和忘记密码。 有了通用代码生成器,可以完美的解决这一问题。您可以利用和写一个Excel表单同等的时间写一个SGS2的Excel模板,利用代码生成器生成一个系统临时凑和着用,几乎是零成本的。您可以轻易的拥有数据库管理系统的全部优势,就是特定功能少一些而已,而数据库的簿记功能可以完美的使数据一致性问题,多人同步工作问题完美解决。同时,您零成本的拥有了一个完善的系统的密码和登录系统,每个人可以维护自己的密码,而系统管理员也可以有效的管理,支持和急救。 所以,通用代码生成器的代码生成物是可以直接使用的,它有完善的通用功能,就是没有定制功能而已,对于任何需求,这种代码生成物都远远优于Excel表格,而成本是一样的。通用代码生成器的代码生物可以完成完善的电子商务系统70%的功能。这就是通用代码生成器的急就章功能。 #### 6.为完善的应用系统收集需求 使用急就章功能可以开发一个简单的应用先凑和着使用。此应用系统也可以成为完善的应用系统的原型和祖先。如果您新规划一个完善的应用系统,您可以先使用通用代码生成器生成一个临时使用的系统,并在实际的使用中收集需求和现用系统的不足,然后您可以使用手工编程完善此系统,得到一个完善的应用系统。 使用数据库自动反射功能,您可以把原型系统内的您需要的数据迁徙到新的完善的应用系统, ### 源码研读者注意事项 无垠式代码生成器第一个完整版本源码,有兴趣可以抄写一下: [https://gitee.com/jerryshensjf/InfinityGPGenerator_0_6_5](https://gitee.com/jerryshensjf/InfinityGPGenerator_0_6_5) 相关技术视频: [https://www.bilibili.com/video/BV1eT421a7j5/](https://www.bilibili.com/video/BV1eT421a7j5/) [https://www.bilibili.com/video/BV1Sr421c7zY/](https://www.bilibili.com/video/BV1Sr421c7zY/) [https://www.bilibili.com/video/BV1fX4y1u7Bn/](https://www.bilibili.com/video/BV1fX4y1u7Bn/) [https://www.bilibili.com/video/BV1rv41187qY/](https://www.bilibili.com/video/BV1rv41187qY/) [https://www.bilibili.com/video/BV1xv41187cA/](https://www.bilibili.com/video/BV1xv41187cA/) [https://www.bilibili.com/video/BV1t64y1v7WA/](https://www.bilibili.com/video/BV1t64y1v7WA/) ### 交流QQ群 - 一群:动词算子式代码生成器群 277689737 - 二群:UI设计实验室 70646187 - 三群:动力建站 255973110 ### 作者电子邮件:jerry_shen_sjf@qq.com ### 官方配乐:巴桑《天路》