最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

代碼生成?除了CRUD還能干啥?

2022-09-25 12:39 作者:軟件田老師  | 我要投稿

有朋友曾經(jīng)問到一個問題,“代碼生成”在很多開源框架里面都有這個功能。就是根據(jù)表的定義,自動生成與程序設(shè)計(jì)相關(guān)的前后端代碼。

當(dāng)然,無容置疑,我們的RDS也是這樣的。只是除了CRUD我們還有什么?

我們的系統(tǒng)其實(shí)也是代碼的搬運(yùn)工,我們不能創(chuàng)造什么代碼,我們提供的是一種可以通過表單設(shè)置,就可以讓我們的設(shè)計(jì)保持足夠的靈活性的方法。

除了增加、修改、刪除、查看詳情外,我們的系統(tǒng)提供了經(jīng)常會使用的,導(dǎo)入,導(dǎo)出,打印,修改字段,跳轉(zhuǎn),彈窗,無關(guān)聯(lián)操作等方法。這些方法沒有什么神奇的地方,甚至可以說是有些簡陋。那么,他們是如何提高我們的開發(fā)效率的呢?

首先,開發(fā)就是一個配置的過程,我們在定義一個按鈕操作的時候,我們需要:

  1. 定義后端針對這個按鈕需要調(diào)用的方法,并將方法依賴的控制器、服務(wù)、模型等一一創(chuàng)建好。

  2. 針對這個方法需要進(jìn)行接口授權(quán),或者后端菜單和方法的授權(quán)

  3. 針對這個方法在前端需要創(chuàng)建jsapi,以便確定如何調(diào)用這個接口

  4. 針對這個訪問我們需要在前端為之創(chuàng)建一個按鈕,并根據(jù)權(quán)限確定其顯示還是隱藏

OK,到此為止,主要的事情我們都落實(shí)好了,那么其具體功能才能被進(jìn)一步的考慮到。那么在此之前的這些操作,其實(shí)都是有規(guī)律可循的,完全可以不用程序員去自己定義或者修改。

那么如果,我們將上述的四步都交由程序完成,那么我們只需考慮的就是這個按鈕背后需要實(shí)現(xiàn)的業(yè)務(wù)邏輯是什么就可以了。

而RDS其實(shí)要做,而且正在做的就是這個工作,我們將程序化的操作,總結(jié)匯總起來,找到其中的規(guī)律,讓我們的代碼生成器來做好四個方面的工作,將業(yè)務(wù)的實(shí)現(xiàn)留給程序員。當(dāng)然我們有些方法甚至是把業(yè)務(wù)也給簡單的實(shí)現(xiàn)了,而且完全可堪一用。

比如我們抽象出來一種方法“無關(guān)聯(lián)按鈕”,什么是無關(guān)聯(lián)按鈕?

我們修改一個行的數(shù)據(jù),必須選中一行,這個按鈕就與一行有關(guān)聯(lián)

我們刪除幾個行的數(shù)據(jù),必須選中多行,這個按鈕就與多行有關(guān)聯(lián)

那么無關(guān)聯(lián)按鈕,就與行無關(guān)。

比如,如下圖所示,我們?yōu)闀T模塊生成測試數(shù)據(jù)的按鈕,他就是一個無關(guān)聯(lián)按鈕

無關(guān)聯(lián)按鈕

這種按鈕給我們提供了足夠的靈活性,首先是按鈕要完成什么功能,我們并沒有提供,只是提供了后端控制器中的一個方法。剩余的其他四項(xiàng),我們都幫您做完了。

1. 控制器及其方法,無非就是方法里面是空的

2. 提供了為此按鈕進(jìn)行授權(quán)的管理界面

為無關(guān)聯(lián)按鈕授權(quán)

3. 為調(diào)用這個接口提供了相應(yīng)的jsapi

4. 創(chuàng)建前端按鈕,并根據(jù)權(quán)限確定是否顯示

當(dāng)系統(tǒng)為我們完成了這些代碼后,系統(tǒng)已經(jīng)可以正常運(yùn)行起來了,只是,我們還沒有為此無關(guān)聯(lián)按鈕,實(shí)現(xiàn)其特定的業(yè)務(wù)邏輯而已。

下面展示的就是我們實(shí)現(xiàn)完成的后的無關(guān)聯(lián)按鈕后端方法的源碼


特別說明:為保證我們自己定義的業(yè)務(wù)邏輯不會被再次生成的代碼覆蓋,我們需要做兩件事情:

1. 生成前后端代碼后,將無關(guān)聯(lián)操作對應(yīng)的后端方法用/**start/ .... /*end*/包括起來

2. 將此方法修改為后端不再生成

關(guān)閉后端代碼生成


通過上面的案例說明,我們想向您傳遞的是一種編程理念,我們應(yīng)該把能夠由機(jī)器實(shí)現(xiàn)的,進(jìn)來交給計(jì)算機(jī)自動完成,程序員需要做的是計(jì)算機(jī)很難自動完成的部分。只要充分利用這些功能,我們就可以大幅度的降低開發(fā)的時間,提高效率,降低出錯的機(jī)率。

我相信能夠?yàn)橛脩籼峁椭能浖?,一定是有價值的!

本文案例參考:RDS通用后臺管理系統(tǒng)功能預(yù)覽(demo.rdscode.cn)

代碼生成?除了CRUD還能干啥?的評論 (共 條)

分享到微博請遵守國家法律
龙泉市| 渑池县| 成安县| 师宗县| 德令哈市| 南丹县| 吉木萨尔县| 龙胜| 永善县| 腾冲县| 曲阳县| 江油市| 高平市| 五指山市| 孝感市| 宾阳县| 裕民县| 诸城市| 凤阳县| 肇庆市| 龙门县| 新建县| 昆明市| 武邑县| 修文县| 巨鹿县| 彭泽县| 岐山县| 平度市| 盐亭县| 从江县| 平泉县| 肃宁县| 昆明市| 横峰县| 东莞市| 襄樊市| 宾阳县| 武穴市| 六安市| 曲靖市|