OneCode AIGC快速無(wú)代碼構(gòu)建應(yīng)用(無(wú)代碼應(yīng)用搭建平臺(tái))
前言
OneCode是一款基于DDD模型驅(qū)動(dòng)設(shè)計(jì)的低代碼引擎。從2022年底推出以來(lái),現(xiàn)在的最新版本是1.1.0。本文重點(diǎn)是采用OneCode提供的工具來(lái)實(shí)際搭建一個(gè)簡(jiǎn)單的(員工請(qǐng)銷(xiāo)假)業(yè)務(wù)應(yīng)用。在搭建過(guò)程中穿插講解一些功能設(shè)計(jì)思想以及使用方法。
一,OneCode建模流程
OneCode建模流程
(二)倉(cāng)儲(chǔ)庫(kù)準(zhǔn)備:
1,利用chatgpt 輔助完成數(shù)據(jù)庫(kù)表設(shè)計(jì)
數(shù)據(jù)庫(kù)表設(shè)計(jì)我們可以通過(guò)GPT來(lái)輔助一下,本文使用的是百度的文心一言輔助操作:
(1)向文心一言發(fā)起基本操作請(qǐng)求:請(qǐng)?jiān)O(shè)計(jì)一張請(qǐng)假單的數(shù)據(jù)庫(kù)表
(2)根據(jù)返回結(jié)果進(jìn)行個(gè)性化微調(diào):OneCode推薦采用UUID主鍵的方式來(lái)做,并且需要字段添加注解以方方便生成頁(yè)面,于是繼續(xù)域文心交互:為請(qǐng)假單設(shè)計(jì)一張UUID為主鍵的數(shù)據(jù)庫(kù)表,為字段添加中文comment 輸出為mysql數(shù)據(jù)庫(kù)腳本
這個(gè)交互中添加了4個(gè)提示詞,分別是:1,請(qǐng)假單,2,UUID主鍵,3,字段添加中文注解 4,mysql 腳本
經(jīng)過(guò)微調(diào)后文心一言返回腳本:
CREATE TABLE `leave_requests` ( -- 請(qǐng)假單ID,唯一標(biāo)識(shí)請(qǐng)假單 `id` CHAR(36) NOT NULL PRIMARY KEY COMMENT '請(qǐng)假單ID', -- 員工ID,與員工表關(guān)聯(lián)的外鍵 `employee_id` INT COMMENT '員工ID', -- 請(qǐng)假開(kāi)始日期 `start_date` DATE COMMENT '請(qǐng)假開(kāi)始日期', -- 請(qǐng)假結(jié)束日期 `end_date` DATE COMMENT '請(qǐng)假結(jié)束日期', -- 請(qǐng)假原因,可存儲(chǔ)文本或JSON格式的理由 `reason` TEXT COMMENT '請(qǐng)假原因', -- 請(qǐng)假狀態(tài),使用字符串常量表示('Pending', 'Approved', 'Rejected') `status` VARCHAR(20) COMMENT '請(qǐng)假狀態(tài)', -- 請(qǐng)假單提交日期 `submitted_date` DATE COMMENT '請(qǐng)假單提交日期', -- 批準(zhǔn)人ID,與用戶表關(guān)聯(lián)的外鍵 `approved_by` INT COMMENT '批準(zhǔn)人ID',-- 批準(zhǔn)日期 `approval_date` DATE COMMENT '批準(zhǔn)日期');
(2)打開(kāi)OneCode 進(jìn)入資源庫(kù)管理
2,使用OneCode工具創(chuàng)建資源庫(kù)模型
(1)打開(kāi)OneCode 進(jìn)入資源庫(kù)管理
選擇添加數(shù)據(jù)庫(kù)表,查看信息,確認(rèn)無(wú)誤后,開(kāi)始構(gòu)建:
構(gòu)建完畢后控制臺(tái),輸出了創(chuàng)建的后端對(duì)象以及編譯信息。
(2)進(jìn)入OneCode 代碼編輯器,查看一下代碼結(jié)構(gòu):
至此我們便完成了OneCode流程中的第一部倉(cāng)儲(chǔ)庫(kù)的建模。
(三)領(lǐng)域視圖構(gòu)建
(1)將剛剛創(chuàng)建的倉(cāng)儲(chǔ)庫(kù)接口導(dǎo)入到領(lǐng)域模型中
(2)編譯配置領(lǐng)域模型接口創(chuàng)建可供web訪問(wèn)的接口層代碼
(3)利用OneCode工具讀取配置web訪問(wèn)代碼
從領(lǐng)域工具中將接口代碼自動(dòng)識(shí)別為了,視圖接口和領(lǐng)域事件。
其中,視圖:包括一張查詢(xún)的列表頁(yè)面,和表單的編輯頁(yè)面。
而數(shù)據(jù)操作方面則自動(dòng)讀取為,領(lǐng)域事件,包括update 更新,find查找、delete刪除,和findByWhere條件查找.
(4)繼續(xù)編譯構(gòu)建頁(yè)面交互視圖
進(jìn)入到可是話交互頁(yè)面可以看到,兩個(gè)視圖的基本頁(yè)面:但有一些結(jié)構(gòu)和信息還需要從數(shù)據(jù)層面做一下調(diào)整。
(四)領(lǐng)域聚合構(gòu)建
在完成視圖的基礎(chǔ)建模后,可以通過(guò)OneCode提供的運(yùn)行期配置工具進(jìn)行前后段一體的領(lǐng)域聚合構(gòu)建
(1)運(yùn)行期配置(從快速開(kāi)始進(jìn)入選擇運(yùn)行配置)
找到剛剛創(chuàng)建的請(qǐng)假表配置
運(yùn)行期配置主要包括:視圖配置、視圖路由、以及領(lǐng)域事件三個(gè)配置部分。
視圖配置會(huì)根據(jù)當(dāng)前頁(yè)面的類(lèi)型自動(dòng)匹配可以配置的屬性
而配置完成后又可以通過(guò),OneCode逆向編譯為OneCode代碼結(jié)構(gòu),方便可視化編譯器以及程序員進(jìn)行二次加工處理。
(2)運(yùn)行期配置快捷應(yīng)用
對(duì)于常見(jiàn)用戶操作,OneCode建模還提供了一些快捷的操作入口。如:在列表上增加幾個(gè)常用功能按鈕,然后點(diǎn)擊編譯視圖;
我們?cè)倩氐疆?dāng)前可視化編輯器,會(huì)發(fā)現(xiàn)一些基本基本的操作功能已經(jīng)自動(dòng)構(gòu)建了。
而點(diǎn)擊編譯后,回到代碼窗口發(fā)現(xiàn)對(duì)應(yīng)的OneCode代碼也同步發(fā)生了變化。
而這些配置覆蓋了絕大多數(shù)的接口以及模塊組件級(jí)別的操作包括:數(shù)據(jù)路由層面的接口參數(shù)、動(dòng)作監(jiān)聽(tīng)以及動(dòng)作事件等等。
而視圖層面更是通過(guò),領(lǐng)域模型以及子域的擴(kuò)展將領(lǐng)域模型中常用配置進(jìn)行了高度的概括和有序的整理。
(五)領(lǐng)域模型混搭配置
完成基礎(chǔ)的表單模型設(shè)置后,我們便進(jìn)入到了具體的業(yè)務(wù)功能設(shè)計(jì)。
(1)打開(kāi)流程工具繪制一個(gè)基礎(chǔ)的請(qǐng)假流程。
(2)選擇流程屬性—動(dòng)態(tài)表單—數(shù)據(jù)庫(kù)表選擇請(qǐng)假單表
(3)選擇流程屬性–辦理權(quán)限設(shè)置
(4)返回從快速開(kāi)始進(jìn)入到仿真測(cè)試
(六)應(yīng)用聚合輸出
完成上述5步基本配置后,一個(gè)小的業(yè)務(wù)模塊便可以進(jìn)入到微調(diào)和個(gè)性化修改的階段。但再具體的實(shí)施過(guò)程中,根據(jù)業(yè)務(wù)應(yīng)用不同,單一的從表單和流程配置角度還不能達(dá)到用戶個(gè)性化的需求。這些就要求平臺(tái)對(duì)于面向用戶的公共部分提供相應(yīng)的配置修改以及建模能力。應(yīng)用聚合輸出作為最后一個(gè)步驟最主要的是提供,所有通用組件的根據(jù)也模塊的自適應(yīng)能力配置。為此我們回到OneCode提供運(yùn)行期配置。我們發(fā)現(xiàn)在這個(gè)用例中作為應(yīng)用最多的流程部分的通用組件應(yīng)用也可以和其他表單以及數(shù)據(jù)服務(wù)接口一樣完成建模設(shè)定。