MoliCode多語(yǔ)言代碼生成器
MoliCode 是基于 java 開(kāi)發(fā)的一種代碼生成器,當(dāng)然其除了生成 Java 代碼亦可生成其它代碼。 它是一個(gè)獨(dú)立( standalone )的工具,用于在 git 倉(cāng)庫(kù)(或者 maven )存儲(chǔ)代碼模板并依此生成目標(biāo)代碼。 它和其它代碼生成器的最主要區(qū)別在于,其關(guān)注點(diǎn)不在模板本身。 即不關(guān)注生成了什么樣的代碼,而是作為一個(gè)基礎(chǔ)工具方便大家編寫(xiě)和共享使用代碼模板。
代碼生成操作,可以通過(guò)數(shù)據(jù)庫(kù)表模型直接生成代碼,UI界面直接配置,一鍵生成代碼,非常方便。
其它代碼工具對(duì)比
作為一個(gè)Java開(kāi)發(fā)人員,或者前端開(kāi)發(fā)人員,我們常常需要生成重復(fù)的代碼。如最常見(jiàn)的CRUD(增刪改查)功能前后臺(tái)的代碼。這些都是模板化的,重復(fù)性的操作,沒(méi)有任何的業(yè)務(wù)意義,非常的耗時(shí)。
在目前市面上,也有很多的代碼生成工具,但是我經(jīng)常發(fā)現(xiàn)現(xiàn)在的代碼工具存在的問(wèn)題:
和業(yè)務(wù)系統(tǒng)耦合在一起:如jeecg, 其生成的代碼是和其基礎(chǔ)工程有很強(qiáng)的代碼耦合性,離開(kāi)了其基礎(chǔ)工程很難通用;
-
不提供模板市場(chǎng):一般模板都是內(nèi)置,沒(méi)有一個(gè)可以共享的模板市場(chǎng)可以下載和共享自己的代碼模板;
-
模板開(kāi)發(fā)不友好:不太清楚其模板開(kāi)發(fā)方式;
-
所以,MoliCode 云模板代碼工具正是為了解決以上問(wèn)題而應(yīng)運(yùn)而生,讓我們一起來(lái)了解一下。
它是如何工作的?
事實(shí)上,moliCode 的兩個(gè)核心模塊是:數(shù)據(jù)模型處理器 + 模板資源包。
- 數(shù)據(jù)模型處理器:主要用于對(duì)數(shù)據(jù)進(jìn)行加工處理,如將 XML 文本解析為 tableModel, JSON 文本轉(zhuǎn)換為 FastJson 對(duì)象。詳細(xì)請(qǐng)參考:數(shù)據(jù)模型處理器
- 模板資源包:按一定規(guī)則組織配置文件和模板文件, 并推送存儲(chǔ)在 git 倉(cāng)庫(kù)。使用時(shí),只需要知道 git 地址并拉取相關(guān)資源,配置到相關(guān)路徑即可。模板資源包
通過(guò)交互式界面,配置相關(guān)信息,然后選擇相關(guān)模板即可一鍵化生產(chǎn)目標(biāo)代碼。
數(shù)據(jù)模型處理器
在讀取到源數(shù)據(jù)之后,需要對(duì)基本的原始數(shù)據(jù)進(jìn)行處理,以方便模板能方便讀取和使用。 其中最重要的是依據(jù)用戶前臺(tái)交互界面選擇的數(shù)據(jù)模型類型,選擇合適的數(shù)據(jù)模型處理器。
除工具自帶的 數(shù)據(jù)庫(kù)表模型、Java 源碼模型、JSON 數(shù)據(jù)模型、XML 數(shù)據(jù)模型、CSV 文件 等基礎(chǔ)的數(shù)據(jù)處理模型之外,代碼模板資源包開(kāi)發(fā)人員可以通過(guò)約定的數(shù)據(jù)處理腳本進(jìn)行數(shù)據(jù)處理。 以此來(lái)擴(kuò)展不同的,定制化的數(shù)據(jù)模型處理。
模板資源包
一種按約定組織的代碼模板資源包,用于將多個(gè)模板文件集中打包到一個(gè) jar 文件中(或者普通文件目錄中),同時(shí)該資源包擁有代碼模板的描述性 XML 文件,用于描述模板在 jar 包中的相對(duì)路徑和輸出信息。 在使用模板資源時(shí),只需要從 git 倉(cāng)庫(kù)中拉取代碼模板,解析倉(cāng)庫(kù)中的模板描述性 XML 文件生成前臺(tái)交互式界面。
在下載了模板資源包,并進(jìn)行了源數(shù)據(jù)的加工,得到加工后的數(shù)據(jù)模型之后,即可完成模板執(zhí)行和代碼生成。 因當(dāng)前的模板引擎可選擇性比較多,除基本的代碼模板引擎外,還有如 Excel 模板引擎,word 文件模板引擎。 通過(guò)依托目前能使用的各種模板引擎,可以選擇性的生成各種類型的文檔,如 Java 源文件,Excel 文檔,word 文檔等。
開(kāi)發(fā)模板的原則
-
通用性:不要和自己的公司業(yè)務(wù)邏輯耦合太深,這樣不方便別的公司開(kāi)發(fā)人員使用;
-
共享性:代碼模板在節(jié)省了自己的時(shí)間的同時(shí),最好能共享出來(lái),節(jié)省大家的時(shí)間,一起享受快速編碼的快感;
-
充分說(shuō)明:代碼模板如何用,和哪個(gè)基礎(chǔ)工程使用需要詳細(xì)說(shuō)明,減少別人使用的疑惑;
-
適度配置:給與適度的可配置功能,方便他人進(jìn)行配置;
MoliCode 模板開(kāi)發(fā)教程
請(qǐng)?jiān)L問(wèn)以下地址,按章節(jié)進(jìn)行學(xué)習(xí)(附視屏教程)
https://gitee.com/molicode_repo/molicode-template-study
模板開(kāi)發(fā)中遇到任何問(wèn)題,請(qǐng)?jiān)赒Q群眾溝通,或者在項(xiàng)目下留言!
教程相關(guān)
請(qǐng)?jiān)L問(wèn)以下地址,查看幫助文檔: http://molicode_repo.gitee.io/molicode_doc/
模板中心請(qǐng)?jiān)L問(wèn): https://gitee.com/molicode_repo/molicode_template_awesome
系列教程請(qǐng)參考:https://my.oschina.net/davidzhang?tab=newest&catalogId=6437716
使用視屏教程:
西瓜視頻: https://www.ixigua.com/i6721698395569783304/
優(yōu)酷:https://v.youku.com/v_show/id_XNDMwMTg5ODQ3Mg==.html
工具在線試用
也可以自行注冊(cè)新用戶使用;
訪客用戶名:guest, 訪客密碼:123456
因?yàn)樯婕澳0鍎?dòng)態(tài)化風(fēng)險(xiǎn),為保證 朋友提供的服務(wù)器安全,訪客目前只能使用模板,不能進(jìn)行配置和鏈接數(shù)據(jù)庫(kù),請(qǐng)見(jiàn)諒! 您可以下載在本地使用,即可擁有完全權(quán)限,謝謝支持理解;
下載使用
已提供二進(jìn)制編譯版本可供下載使用:
https://gitee.com/zhangshibin1987/molicode/releases
目前可以使用的模板
前端相關(guān):
前端主要支持Vue生態(tài)的UI組件庫(kù), 以及很久以前開(kāi)發(fā)的bootstrap3.x的增刪改查界面功能;
-
Element-ui 相關(guān)的增刪改查頁(yè)面功能;
-
Iview 相關(guān)的增刪改查頁(yè)面功能;
-
Antd-vue 相關(guān)的增刪改查頁(yè)面功能;
-
Bootstrap3 的增刪改查頁(yè)面功能(和Velocity配合使用);
后臺(tái)相關(guān):
后臺(tái)主要還是和腳手架關(guān)聯(lián)系比較強(qiáng), 生成的代碼。
目前可以生成:
controller,service,dao, mybatis mapper, domain 等各種源碼。
使用圖例
