# CodeSpark-代码生成器共享平台 **Repository Path**: jin-ziye/code-generator ## Basic Information - **Project Name**: CodeSpark-代码生成器共享平台 - **Description**: 基于Nest.js+Command.js+对象存储(+Vue+Ant Design Vue)的代码生成器共享平台,开 发者可以发布代码生成器,用户可以搜索,下载,在线使用生成器(比如项目模板 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-11-02 - **Last Updated**: 2024-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: Vue, TypeScript, MongoDB, Nestjs ## README # 项目介绍 ## 项目名称 :point_right: **CodeSpark(代码生成器共享平台)** :leaves: **前端技术栈:** - Vue3开发框架 - Ant Design Vue组件库 - TypeScript+Prettier :seedling: **后端技术栈:** - Nest.js+MongoDB - 命令行开发工具:Command.js+inquirer.js+chalk - 模板引擎:Art-template.js - 文件操作扩展:fs-extra+adm-zip - Redis缓存 - 对象存储 ## 项目背景 ### 解决的问题: 1)日常或者常见的重复性代码片段,**解决重复编码,效率低下的问题** 2)网上的代码生成器或者说脚手架生成的模板,对初学者很友好,但是对于熟悉的开发者来说就**无法满足实际开发定制需求了**,可以制作属于自己的项目模板生成器,同时也可以抽取公共方法制作通用模板分享出去。 3)通用模板的的分享,可以构建出一个平台,一个代码生成器共享平台,**开发者可以定制代码生成器并发布,也可以在线制作,使用者可以下载代码生成器,也可以在线使用代码生成器。** ### 实际的使用 1. 可以保存一些自己的数据结构或者算法题解模板 2. 可以制作一个属于自己的框架模板生成器,比如:可以制作一个属于自己的Nest.js项目的模板生成器 3. 还可以上网找一些热门项目进行“换皮” # 项目设计 ## 代码生成器的核心原理 `参数+模板文件 => 生成完成代码` :watermelon: 例子如下: 参数:name = CodeSpark 模板文件代码: ``` ---------- I am {{name}} ---------- ``` 将参数注入模板文件,得到生成的完整代码: ``` ----------- I am CodeSpark ----------- ``` 如果需要生成不同的代码,只需要修改参数就可以了,不需要修改文件 ## 三个阶段 1. 第一阶段:制作属于自己的本地代码生成器,是一个**基于命令行的脚手架**,能够根据用户交互式输入的参数快速生成特定的代码 2. 第二阶段:开发**制作代码生成器的工具**,比如我们有一段常用的项目代码,使用该工具,可以快速把项目代码制作微第一段的代码生成器,将**提高开发者的效率** 3. 第三阶段:开发**代码生成器共享平台**,我们可以在平台生发布自己的代码生成器,也可以在线制作代码生成器,用户可以下载代码生成器,还可以在线使用代码生成器。 ### 第一阶段 — 本地代码生成器 1. 准备用于制作代码生成器的原始代码(比如算法模板项目),用于后续生成 2. 开发者基于原始代码,设置参数,编写动态模板 3. 制作可交换的命令行工具,支持用户输入参数,得到主文件 4. 使用者可以执行node命令,将执行文件路径换成Shell命令,简化调用,同时执行程序输入参数,从而生成完整代码 流程如下: ![输入图片说明](imgs/Snipaste_2024-03-16_15-51-05.png) ### 第二阶段 - 代码生成器制作工具 1. 准备用于制作代码生成器的原始代码(比如 Nest.js的项目模板),用于后续生成 2. 开发者基于原始代码,使用代码生成器制作工具,来快速设置参数,生成动态模板 3. 使用者代码生成制作工具,动态生成代码生成器jar包 4. 使用者得到代码生成jar包,执行程序并输入参数,得到完整代码 流程图: ![输入图片说明](imgs/Snipaste_2024-03-16_16-06-41.png) ### 第三阶段 - 代码生成器共享平台 1. 获取用于代码生成器的原始代码 2. 开发者可以基于原始代码,使用在线**代码生成器制作**工具,来快速制作代码生成器 3. 开发者发布代码生成器至平台 4. 使用者在平台上搜索代码生成器,支持在线使用或者下载离线程序包 流程图: ![输入图片说明](imgs/Snipaste_2024-03-16_16-12-00.png)