【开源】代码重复枯燥?生成它!代码生成器

大家好,欢迎来到停止重构的频道。

本期我们发布一个Python3编写的通用代码生成器,名字叫Christmas ,目前是2.0版本。

开始构造Christmas源于一个设想,如果枯燥、重复的代码不能只写一次,那就生成它。

也得益于Christmas,使得我们的前端框架Trick,允许页面模块单独运行开发,后端Once框架通过Json配置即可完成业务代码开发。

软件是开源的,感兴趣的小伙伴可以到GitHub下载,我们的官网有完整的使用说明

另外,Christmas是一个命令行工具,如果使用VS Code的话,可以在VS Code的插件商店,下载Christmas的辅助插件,以提升其易用性。 

接下来,围绕Christmas的五大功能展开介绍 :

1、从模板生成代码 GenCode 

2、从现有代码生成代码 MergeCode 

3、清理文件/目录 CleanCode

4、下载代码 DownloadCode 

5、编排多个shell指令 ExcuteShell 

从模板生成代码 GenCode

整理代码模板配置Json生成规则后,Christmas即可根据Json的嵌套关系,将代码模板的代码按规则生成新代码。

比如运行该模式下的sample ,即可按规则生成新代码。

 

这种方式适合于初始化工程、新增模块等新增场景,也适合业务代码生成等规则明确的场景 。

从现有代码生成代码 MergeCode

这个模式允许从现有可运行代码中,重新整合、嵌套生成新代码,也可以改变目录结构。

这个模式更类似于编译,我们的前端Trick框架就是以这个模式编译生产环境代码,我们的后端Once框架就是以这个模式连接完全独立的模块代码。

比如运行该模式下的sample#complex 即可以从现有代码整理出新代码。

清理文件/目录CleanCode 

这个模式主要是为了批量清理备份或不需要的文件/目录,这个模式下是可以一次清理多个位置的,支持目录下遍历文件,支持关键词匹配筛选 。

 

下载代码DownloadCode 

下载代码是方便团队自身的代码库下载代码文件

为了适配更多的场景,该模式实际上是下载服务端的Load文件,再根据Load文件下载具体文件。

所以不用担心文件结构不一样而不能使用此功能。

我们的前端Trick框架和后端Once框架就是用这个功能下载模块代码的,其中模块代码的文件结构是可能不一样的。

编排多个Shell指令ExcuteShell 

虽然上面的功能看起来比较完善,但是一些时候,是需要整合好几个功能。

如下载完模块代码后,需要连接模块代码,则需要运行DownloadCode后,运行MergeCode。

虽然Shell命令行本身也支持一行表示多个指令,且可以通过&&实现前一个指令成功后再执行后一个指令。但是如果程序要求用户在运行过程中输入字符串,则不好处理。

所以Christmas补充了ExcuteShell功能,允许设置多个Shell指令,可设置当前指令失败时是否继续,也可设置根据程序输出log自动输入字符串

总结

总体来说,Christmas对于规则、规范明确的项目来说,是非常好用的,希望能帮助大家只写一次枯燥、重复的代码。

在往期内容,我们提出了顶层架构的概念 一些朋友说一些规则落地有些费劲,那么可以尝试一下Christmas。

猜你喜欢

转载自blog.csdn.net/Daniel_Leung/article/details/131892837