Skip to content

基于Nest.js+Command.js+对象存储(+Vue+Ant Design Vue)的代码生成器共享平台,开 发者可以发布代码生成器,用户可以搜索,下载,在线使用生成器(比如项目模板

License

Notifications You must be signed in to change notification settings

JinKang-Xiong/code-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

项目介绍

项目名称

👉 CodeSpark(代码生成器共享平台)

🍃 前端技术栈:

  • Vue3开发框架
  • Ant Design Vue组件库
  • TypeScript+Prettier

🌱 后端技术栈:

  • Nest.js+MongoDB
  • 命令行开发工具:Command.js+inquirer.js+chalk
  • 模板引擎:Art-template.js
  • 文件操作扩展:fs-extra+adm-zip
  • Redis缓存
  • 对象存储

项目背景

解决的问题:

1)日常或者常见的重复性代码片段,解决重复编码,效率低下的问题

2)网上的代码生成器或者说脚手架生成的模板,对初学者很友好,但是对于熟悉的开发者来说就无法满足实际开发定制需求了,可以制作属于自己的项目模板生成器,同时也可以抽取公共方法制作通用模板分享出去。

3)通用模板的的分享,可以构建出一个平台,一个代码生成器共享平台,开发者可以定制代码生成器并发布,也可以在线制作,使用者可以下载代码生成器,也可以在线使用代码生成器。

实际的使用

  1. 可以保存一些自己的数据结构或者算法题解模板
  2. 可以制作一个属于自己的框架模板生成器,比如:可以制作一个属于自己的Nest.js项目的模板生成器
  3. 还可以上网找一些热门项目进行“换皮”

项目设计

代码生成器的核心原理

参数+模板文件 => 生成完成代码

🍉 例子如下:

参数:name = CodeSpark

模板文件代码:

----------
I am {{name}}
----------

将参数注入模板文件,得到生成的完整代码:

-----------
I am CodeSpark
-----------

如果需要生成不同的代码,只需要修改参数就可以了,不需要修改文件

三个阶段

  1. 第一阶段:制作属于自己的本地代码生成器,是一个基于命令行的脚手架,能够根据用户交互式输入的参数快速生成特定的代码
  2. 第二阶段:开发制作代码生成器的工具,比如我们有一段常用的项目代码,使用该工具,可以快速把项目代码制作微第一段的代码生成器,将提高开发者的效率
  3. 第三阶段:开发代码生成器共享平台,我们可以在平台生发布自己的代码生成器,也可以在线制作代码生成器,用户可以下载代码生成器,还可以在线使用代码生成器。

第一阶段 — 本地代码生成器

  1. 准备用于制作代码生成器的原始代码(比如算法模板项目),用于后续生成

  2. 开发者基于原始代码,设置参数,编写动态模板

  3. 制作可交换的命令行工具,支持用户输入参数,得到主文件

  4. 使用者可以执行node命令,将执行文件路径换成Shell命令,简化调用,同时执行程序输入参数,从而生成完整代码

流程如下: 输入图片说明

第二阶段 - 代码生成器制作工具

  1. 准备用于制作代码生成器的原始代码(比如 Nest.js的项目模板),用于后续生成
  2. 开发者基于原始代码,使用代码生成器制作工具,来快速设置参数,生成动态模板
  3. 使用者代码生成制作工具,动态生成代码生成器jar包
  4. 使用者得到代码生成jar包,执行程序并输入参数,得到完整代码

流程图:

输入图片说明

第三阶段 - 代码生成器共享平台

  1. 获取用于代码生成器的原始代码
  2. 开发者可以基于原始代码,使用在线代码生成器制作工具,来快速制作代码生成器
  3. 开发者发布代码生成器至平台
  4. 使用者在平台上搜索代码生成器,支持在线使用或者下载离线程序包

流程图:

输入图片说明

About

基于Nest.js+Command.js+对象存储(+Vue+Ant Design Vue)的代码生成器共享平台,开 发者可以发布代码生成器,用户可以搜索,下载,在线使用生成器(比如项目模板

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published