代碼生成器

一、為什么需要代碼生成器

在后臺(tái)管理系統(tǒng)中,我們有大量的單表簡(jiǎn)單查詢(xún)、新增和修改之類(lèi)的業(yè)務(wù)場(chǎng)景,對(duì)于這樣的業(yè)務(wù)往往需要編寫(xiě)大量的控制器、模型、配置等文件,這些文件其實(shí)本質(zhì)來(lái)說(shuō)就是對(duì)數(shù)據(jù)庫(kù)單表的映射,代碼生成器就是可以通過(guò)簡(jiǎn)單的操作,快速將數(shù)據(jù)庫(kù)表映射成代碼和配置,大大減少開(kāi)發(fā)人員的工作難度。

二、代碼生成器實(shí)現(xiàn)

  1. 這里我選擇的是Electron,基于Nodejs的桌面應(yīng)用開(kāi)發(fā)。通過(guò)Node的ORM框架Sequelize來(lái)逆向生成數(shù)據(jù)表相關(guān)結(jié)構(gòu)


    新建數(shù)據(jù)庫(kù)連接
  2. 對(duì)于每張表的不同字段,我想可以通過(guò)標(biāo)簽和拖拽的方式可以給每一個(gè)字段不同的屬性,讓可以在新增、查詢(xún)、修改的表單中有不同的表現(xiàn)方式。通過(guò)在模板中進(jìn)行判斷,來(lái)使在不同的文件中,展示不同的效果,比如時(shí)間日期字段,可以使用時(shí)間日期的控件來(lái)展示,開(kāi)啟關(guān)閉的字段,可以使用switch相關(guān)的控件來(lái)展示,這樣讓代碼生成器更加的靈活,更加易用。


    自定義標(biāo)簽
  3. 模板的編寫(xiě)我選擇集成MonacoEditor,MonacoEditor是微軟開(kāi)源的Web代碼編輯器,可以自定義代碼提示、語(yǔ)法之類(lèi)的。
    對(duì)于模板引擎用的是artTemplate,artTemplate是一個(gè)高性能的JavaScript模板引擎,具體使用方法可以看看它的官網(wǎng)


    模板編寫(xiě)
  4. 最后就是選擇需要生成的模板數(shù)據(jù)庫(kù)了,選擇需要生成的數(shù)據(jù)庫(kù)表和模板,生成對(duì)應(yīng)的前后端代碼到指定目錄。這里其實(shí)還可以集成beyondcompare,對(duì)重復(fù)生成的代碼做比較合并操作


    選擇模板

    選擇數(shù)據(jù)庫(kù)

    完成

三、項(xiàng)目地址

https://github.com/2507483326/emerge

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 考研這個(gè)念頭在我心中已經(jīng)有好長(zhǎng)時(shí)間了,一直沒(méi)有付諸行動(dòng),也許是怕,害怕失敗,害怕英語(yǔ),害怕太多太多東西?,F(xiàn)在做出這...
    婉兮兒閱讀 747評(píng)論 0 0
  • 第一種寫(xiě)法 第二種寫(xiě)法 參考 github
    sbtiny閱讀 626評(píng)論 0 0
  • 那日偶然讀到三毛的《夜深了,花睡了》,我的記憶瞬間被喚醒。三毛,一個(gè)伴隨了我青春歲月的名字,那曾是我最?lèi)?ài)的作家...
    劉立宏閱讀 547評(píng)論 0 0
  • 為了一位40歲,還整天不著正調(diào)的人,我想了一個(gè)設(shè)問(wèn)。 如果再給你一次機(jī)會(huì),讓你20歲結(jié)婚,次年生子,今年他剛好上大...
    劉遲閱讀 461評(píng)論 3 1
  • 前幾天跟同事聊起來(lái)做實(shí)習(xí)生的時(shí)候,每天誠(chéng)惶誠(chéng)恐生怕闖禍的“黑歷史”。 公司的設(shè)計(jì)師妹子說(shuō),她大四剛開(kāi)始實(shí)習(xí)的時(shí)候太...
    令狐Sphinx閱讀 1,412評(píng)論 1 13

友情鏈接更多精彩內(nèi)容