一、為什么需要代碼生成器
在后臺管理系統中,我們有大量的單表簡單查詢、新增和修改之類的業務場景,對于這樣的業務往往需要編寫大量的控制器、模型、配置等文件,這些文件其實本質來說就是對數據庫單表的映射,代碼生成器就是可以通過簡單的操作,快速將數據庫表映射成代碼和配置,大大減少開發人員的工作難度。
二、代碼生成器實現
-
這里我選擇的是Electron,基于Nodejs的桌面應用開發。通過Node的ORM框架Sequelize來逆向生成數據表相關結構
新建數據庫連接 -
對于每張表的不同字段,我想可以通過標簽和拖拽的方式可以給每一個字段不同的屬性,讓可以在新增、查詢、修改的表單中有不同的表現方式。通過在模板中進行判斷,來使在不同的文件中,展示不同的效果,比如時間日期字段,可以使用時間日期的控件來展示,開啟關閉的字段,可以使用switch相關的控件來展示,這樣讓代碼生成器更加的靈活,更加易用。
自定義標簽 -
模板的編寫我選擇集成MonacoEditor,MonacoEditor是微軟開源的Web代碼編輯器,可以自定義代碼提示、語法之類的。
對于模板引擎用的是artTemplate,artTemplate是一個高性能的JavaScript模板引擎,具體使用方法可以看看它的官網
模板編寫 -
最后就是選擇需要生成的模板數據庫了,選擇需要生成的數據庫表和模板,生成對應的前后端代碼到指定目錄。這里其實還可以集成beyondcompare,對重復生成的代碼做比較合并操作
選擇模板
選擇數據庫
完成