Java 通用代碼生成器光 2.1.0 信念 Beta2 版公布,三大變形功能群...

2020-12-11 開源中國

Java 通用代碼生成器光 2.1.0 信念 Beta2 版公布,三大變形功能群齊備,功能強大且靈活

大家好!
Java 通用代碼生成器光 2.1.0 信念 Beta2 版公布,經過在Beta版上艱苦的缺陷修正,Beta2版完成了可用性上的巨大進步。
Beta2版的最大優勢是三大變形功能群齊備,並可以聯合使用。Beta2版在Beta版基礎上,排除了很多缺陷才達成這一目的。

三大變形功能群如下:
動態椰子樹功能群:
代碼生成物的文件夾結構和域對象和控制器的後綴可配置。

動詞否定功能群:
可以去除您不需要的功能

欄位否定功能群:
域對象三個特殊欄位序號,域對象名字和活躍欄位不再必選,而是可以缺失或者部分缺失,但是缺失這些欄位意味著功能上有相應的缺失

使用這三大變形功能群,您的代碼生成物可以變化多端,非常靈活,而且可以適配不同的編程風格。請使用FaithSample和DenyFieldsCorrect2作為優先評測案例。

項目地址:https://gitee.com/jerryshensjf/LightSBMEU
發行版下載地址:https://gitee.com/jerryshensjf/LightSBMEU/attach_files

第三代動詞算子式代碼生成器:光SBMEU版

本代碼生成器支持前後端分離界面了

開發者手冊已在本站附件處公布

讓代碼生成器成為大家開發Java程序的一項優勢

引子

傳說在阿拉伯半島一個神秘的月亮山洞裡,有一盞神奇的神燈,它可以滿足您三個願望,夜之精靈守護著這盞神燈,和洞裡無數的其他珍寶。此處並非任何人的財產,勇敢的人才是神燈的主人。

年輕的程式設計師阿拉丁找到了這個山洞,在洞穴幽藍的微光下,他摩擦了這盞神燈,於是,夜之精靈退後,一位燈神出現了,他宣稱可以滿足阿拉丁三個願望,任何願望。於是,阿拉丁提出了他的第一個願望:"給我一臺支持Excel的Apple I。"

燈神為難了:"有沒有搞錯,那時候有沒有Excel?"

"我不管,您不是萬能的燈神嗎?"

"那好吧,這些研發工作我替賈伯斯做了。」

於是,第二個願望:"給我一套Excel模板。"

最後的願望是:」生成一套管理系統!"

簡介

第三代動詞算子式代碼生成器:光SBMEU版,採用Maven, EasyUI,SpringBoot 2, MyBatis, MariaDB 技術棧

歡迎大家使用由無垠式,和平之翼和光三代動詞算子式代碼生成器組成的動詞算子式代碼生成器陣列,在我的碼雲站點https://gitee.com/jerryshensjf/大家可以找到這些代碼生成器。把他們統統部署在Tomcat中,您可以獲得超過600N的代碼變形能力。

注意

因為眼疾,我不得不把動詞算子式代碼生成器的研發工作停止在目前的狀態。研發工作已經延續了七年,有很多成就,也有很多遺憾,更有很多已規劃但卻從未實現的功能。現在,我把這些內容功能公布出來。也許,呼喚一位英雄,也許是幾位。

至尊寶,這是您的箍和屠龍寶刀。接好了,屠龍刀乃是寶物,不要說砸到小朋友,砸到了花花草草也是不好的。

我將在開源中國博客中公布所有未完成的功能構想。並基於光1.5.0的代碼編寫《開發者手冊》(《黑客手冊》)。

《開發者手冊》正在編寫之中,已可在本站附件處下載,持續更新中。 https://gitee.com/jerryshensjf/LightSBMEU/attach_files

可在本站附件處下載各個版本的光。另外,附件中有多個光2.1 信念的操作視頻,解說語言有中文和英文(不同視頻),歡迎使用。 https://gitee.com/jerryshensjf/LightSBMEU/attach_files

項目圖片:光

版本情況

光SBMEU 2.1 版項目代號Faith 信念

信念已釋出第一個Beta2版,此版本包括5個新功能:Language,Schema, SQLLength,下劃線分隔的欄位名,欄位否定。注入空單域動詞功能尚待實現。其他功能將延續至光2.2 Intelligence 智慧版本實現。有些功能可能進一步延後。

Beta2版的最大優勢是三大變形功能群齊備,並可以聯合使用。Beta2版在Beta版基礎上,排除了很多缺陷才達成這一目的。 三大變形功能群如下:

動態椰子樹功能群:

代碼生成物的文件夾結構和域對象和控制器的後綴可配置。

動詞否定功能群:

可以去除您不需要的功能

欄位否定功能群:

域對象三個特殊欄位序號,域對象名字和活躍欄位不再必選,而是可以缺失或者部分缺失,但是缺失這些欄位意味著功能上有相應的缺失

信念的新功能介紹

英文界面

項目頁設置language為English,生成界面即為英文界面。

DBTools模式

項目頁設置schema為DBTools,生成結果為各種SQL語句,並不再生成前端和後端項目。

欄位長度

現在,字符串型的欄位可以設置欄位長度。

下劃線分隔的欄位

Domain頁可以設置欄位名,域對象名,複數為下劃線分割的名字。這些欄位將自動轉化為駝峰樣式,規則為有下劃線的名字不區分大小寫,緊接下劃線的字母會轉化成大寫字母。域名,域複數名為大寫起頭,欄位名為小寫起頭。

欄位否定功能群

系統要求每個域對象有三個特殊欄位,domainId,domainName和activeField,現在,可以不包含這些欄位,但是,會有功能損失。三個欄位不全的域對象被成為遺留域對象,不可以參與多對多關係,不能成為一對多關係的目標對象,對Grid頁面,隨所缺欄位,一部分動詞會被自動否定。

信念及未來的版本計劃

  1. SQLlength特性, SQLType的縮減版[已實現]
  2. Calc動詞
  3. default和default+,default-動詞堆棧
  4. decimal,date,time和datetime數據類型
  5. image數據類型
  6. BootAuth登錄模塊
  7. 前端項目相應更新
  8. 全數據策略,生成測試案例
  9. 可以關閉打開的自動生成的注釋
  10. 可以注入含可變參數列表單域空白動詞,編譯無錯
  11. 下劃線分割的欄位名自動解析[已實現]
  12. DBTools模式,生成SQL Insert,Update,Delete語句,包含Create DB, Create table 語句。[已實現]
  13. 支持英語界面,即language選項[已實現]
  14. 欄位否定功能,domainId,domainName,activeField三者可以缺失,但會付出功能缺失的代價[已實現]

光SBMEU 2.0 版項目代號Insight 內省

主要包含動態椰子樹式的目錄結構,動態域對象和Controller後綴,域對象個性化表名前綴和動詞否定四個功能。

原來,動詞算子式代碼生成器的目錄結構是椰子樹式的,就是路徑前綴是可變的,但是像Service和Dao等等的子文件夾是固定的,現在,這些子文件夾也是動態的,所以稱為動態椰子樹式的文件夾。

動態域對象和Controller後綴允許產生各種風格的代碼,以適應不同項目組的需要。

域對象個性化表名前綴允許一個項目擁有多種表名前綴,對有些項目組而言,這是他們喜歡的風格。

動詞否定的含義是您可以在Excel模板中的域對象頁中否定掉您不需要的動詞。這樣,就不需要手工刪除了,大大節省了工作量,這是我很自豪的功能,我沒有做功能的加法,而是使用了減法,這是非常實用和新穎的。

Insight的Beta3版已經實現了動詞否定功能,從此,您可以靈活的定義對象的操作。如果某對象不需要刪除功能,您只需要否定Delete功能,相關代碼就不會在代碼生成物中出現了。

內省(Insight)的Beta3版

內省的Beta3版已公布。請使用示例DynamicSample,DynamicSample2和DynamicOracleEn作為動態椰子樹功能樣例測試。請使用DenySample和DenyOracleEn作為動詞否定的樣例測試。可在本站附件處下載Beta3版。 https://gitee.com/jerryshensjf/LightSBMEU/attach_files

現在,Beta3版包含動態椰子樹式的目錄結構,域對象和Controller後綴可配置和域對象可配置表名前綴和動詞否定四大功能。

在不同項目組的實踐中,有些代碼的細節是不一致的,比如,域對象有人喜歡不帶後綴,有人喜歡使用Entiy或PO,有人喜歡後綴Dto。路徑有人喜歡使用dao,daoimpl,service,serviceimpl,controller,而有人喜歡使用dao,dao.impl,service,service.impl,controller這些變體,內省都支持。你甚至可以規定Controller使用Facade或者Adapter後綴,並定義相關的Controller路徑,內省都可以準確的生成無錯的代碼。

內省(Insight)的Beta3版的動詞否定功能

有了動詞否定功能,您可以否定掉不需要的功能,但是注意,動詞間有依賴關係,比如,您否定了Clone功能,卻沒有否定CloneAll功能,這時,代碼生成器會報錯,原因是CloneAll依賴Clone動詞完成每一個Clone動作,否定CloneAll而不否定Clone是可以的,反之則有編譯錯誤。

特別的,Beta3版提供了便利的max和max+功能。max功能是最大限度的否定,即除了ListActive,SearchByFieldsByPage和FindById三個默認動詞外全部否定。 max+功能是一種便利的約定,單獨的max+含義和max一樣,但是max+,Add,Update 的含義是除了三個默認動詞外還有Add和Update兩個動詞不被否定,即有5個動詞,即是max+後面的動詞列表不是默認的減法,而是加法。 Beta3版提供了動詞否定的在線文檔。請大家參考。

動詞否定效果圖

可以看見按鈕條在不同配置下的功能伸縮。

光SBMEU 1.5版項目代號Kama 頓悟

動詞算子式代碼生成器的基本設計

簡單說一下,我的代碼生成器有三層,項目,稜柱和域對象。有大概20個動詞算子,或者稱為泛型動詞算子。比如說,新增就是一個動詞算子,編輯是另外一個動詞算子。您可以選擇一個域對象上面使用的動詞算子,當然要遵守一些依賴關係。還可以在域對象之間建立一對多和多對多關係。這樣,一個正確設置的Excel工作簿會被編譯成項目,這就是動詞算子式代碼生成器的基本邏輯。

功能亮點截圖

Excel和資料庫的新玩法

其實,還可以這樣用代碼生成器,把Excel裡的數據整成代碼生成器的模板格式,填好數據,生成項目,操作數據完成工作,再利用代碼生成物的Excel導出功能得到加工好的數據,非常方便,使您擁有了在Excel和資料庫之間自由遷徙的能力。

前後端分離項目自動生成

第三代動詞算子式代碼生成器:光SBMEU版已支持Vue+ElementUI前後端分離項目自動生成。您只需要定義一個後端項目的Excel模板,即可一次生成後端項目和與之配套的前端項目,非常強大,您值得一試。

同時生成前端後端項目的功能截圖

前端項目運行使用方法。

前端項目的使用:首先使用光SBMEU版,生成後端項目和對應的前端項目。運行後端項目。注意,啟動Application.java類啟動SpringBoot的後端項目,您需要首先使用Maven將例程編譯。

將前端項目解壓。如果沒有安裝Nodejs,請先安裝。在解壓的前端界面文件夾內運行 npm install命令。運行好後運行npm run dev

一切就緒後訪問 http://localhost:8000/ 即可使用此示例。

代碼生成物導出功能截圖

導出Excel:

導出PDF:

開發者手冊(「黑客手冊」)截圖

Spring Boot啟動,有圖為證:

相關技術博客

地址:https://my.oschina.net/jerryshensjf

技術博客截圖:

前端項目截圖:

登錄:

Grid:

多對多:

編輯,下拉列表:

光SMBEU版截圖

光取消了對SGS腳本的支持,統一使用電子表格來生成代碼,支持.xls格式,可以使用MS Office, WPS Office或Libre Office中的電子表格軟體,都要存成.xls格式。

Excel模板截圖

下圖是生成代碼的Excel模板示例,Linux下使用WPS Office的電子表格軟體

代碼生成器截圖:

Excel生成界面

文檔

後端項目代碼生成物截圖:

主頁:

列表頁面:

更新頁面:

一對多下拉列表:

多對多

交流QQ群

無垠式代碼生成器群 277689737

官方配樂:鄧紫棋《光年之外》

相關焦點