日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

實(shí)戰(zhàn)Spring Cloud、Vue構(gòu)建基于微服務(wù)的SaaS低代碼開發(fā)平臺2(微服務(wù)springcloud搭建)

實(shí)戰(zhàn)Spring Cloud、Vue構(gòu)建基于微服務(wù)的SaaS低代碼開發(fā)平臺2(微服務(wù)springcloud搭建)

一、低代碼開發(fā)平臺不是快速開發(fā)平臺

1、 低代碼開發(fā)平臺定義

最近,阿里巴巴發(fā)布了自己的低代碼開發(fā)平臺“宜搭”,網(wǎng)址是:https://www.aliwork.com ,關(guān)于低代碼開發(fā)平臺,我去年年底也寫過兩篇文章(https://www.toutiao.com/i6637188964732109315/),對低代碼開發(fā)進(jìn)行了初步探討。關(guān)于低代碼開發(fā)的定義,百度百科是這么寫的:低代碼開發(fā)平臺是無需編碼或通過少量代碼就可以快速生成應(yīng)用程序的開發(fā)平臺。它的強(qiáng)大之處在于,允許終端用戶使用易于理解的可視化工具開發(fā)自己的應(yīng)用程序,而不是傳統(tǒng)的編寫代碼方式。構(gòu)建業(yè)務(wù)流程、邏輯和數(shù)據(jù)模型等所需的功能,必要時(shí)還可以添加自己的代碼。完成業(yè)務(wù)邏輯、功能構(gòu)建后,即可一鍵交付應(yīng)用并進(jìn)行更新,自動(dòng)跟蹤所有更改并處理數(shù)據(jù)庫腳本和部署流程,實(shí)現(xiàn)在 IOS,Android,Web 等多個(gè)平臺上的部署。

從該定義中我們也可以看到,低代碼開發(fā)有這么幾個(gè)核心詞匯組成:

(1)面向終端用戶,即低代碼開發(fā)平臺的使用者是最終用戶或者是實(shí)施工程師,快速開發(fā)平臺的使用者還是程序員;

(2)可視化工具,即要有面向終端應(yīng)用的程序界面生成器(不是快速開發(fā)平臺的應(yīng)用生成器),如下圖所示:

實(shí)戰(zhàn)Spring Cloud、Vue構(gòu)建基于微服務(wù)的SaaS低代碼開發(fā)平臺2(微服務(wù)springcloud搭建)

圖一,應(yīng)用界面生成器,該圖用excel4app.com生成

(3)無需編碼或通過少量代碼

(4)在必要的時(shí)候,有添加自己的個(gè)性化代碼,完成業(yè)務(wù)邏輯的機(jī)制。

2、 快速開發(fā)平臺定義

百度百科上,快速開發(fā)平臺是這么定義的:快速開發(fā)平臺,就是可以使得開發(fā)更為快速的開發(fā)平臺。當(dāng)開發(fā)平臺產(chǎn)生之后,雖然減少了編程人員大量的編程時(shí)間,但是很多開發(fā)平臺的效果并不是很理想,比如說某些開發(fā)平臺比較復(fù)雜、難以掌握;有的開發(fā)平臺通用性比較差;有的開發(fā)平臺在時(shí)間上并沒有得到改善;還有的依然還是需要寫很多代碼等等。這些問題的存在促使開發(fā)者不斷的摸索、不斷的改進(jìn),到最后越做越成熟,以致于現(xiàn)在市面上出現(xiàn)的大部分開發(fā)平臺效率都非常高,他們改善了以往的產(chǎn)品存在的缺陷,使得開發(fā)過程比以往更簡潔、編寫代碼更少、開發(fā)效率越來越高。

從定義中也可以看出,快速開發(fā)平臺是開發(fā)更為快速的開發(fā)平臺??焖匍_發(fā)平臺強(qiáng)調(diào)的是開發(fā)速度快,使用者還只能是程序員,而低代碼開發(fā)平臺的使用者是最終用戶,目標(biāo)不同,所以兩者的定位也差異極大。

3、 低代碼開發(fā)整體架構(gòu)圖

實(shí)戰(zhàn)Spring Cloud、Vue構(gòu)建基于微服務(wù)的SaaS低代碼開發(fā)平臺2(微服務(wù)springcloud搭建)

低代碼開發(fā)平臺一般由以下幾個(gè)部分組成:

(1) 互動(dòng)式界面生成器,如上圖一所示,最終用戶通過互動(dòng)式界面生成器生成自己的應(yīng)用,能夠完成簡單的增刪改查等基本操作。

(2) 界面渲染引擎,最終用戶用互動(dòng)式界面生成器生成界面后,一般為JSON格式,并保存到數(shù)據(jù)庫或者XML文件中,然后在最終用戶使用該功能時(shí),再由JSON界面渲染引擎,把該界面實(shí)時(shí)渲染出來,無路是Vue、還是React,類似開源的JSON表單引擎有很多,阿里巴巴的宜搭,也是類似的思路。我為啥并不推薦快速開發(fā)平臺呢,因?yàn)榍芭_技術(shù)實(shí)在是變化太快了,每隔一兩年,前臺技術(shù)就會(huì)發(fā)生革命性變化,由傳統(tǒng)的JSP,發(fā)展到Struts,開始引入模板和MVC的概念,再發(fā)展到HTML JQuery,同期還有ExtJS,再發(fā)展到現(xiàn)在的所謂的MVVM,前端技術(shù)的每次變化,都是對以前技術(shù)的推倒重來,而快速開發(fā)平臺是坐火箭 望遠(yuǎn)鏡也趕不上前臺技術(shù)發(fā)展的,所以快速開發(fā)平臺往往只能是拿后臺的用戶、角色、權(quán)限、菜單來說事,而不能再像以前可以隨意生成JSP頁面那樣,快速生成Vue、React頁面了,因?yàn)閂ue、React相比較起JSP,實(shí)在是太復(fù)雜了,JSP是會(huì)HTML語法就可以,而Vue、React則是一個(gè)技術(shù)棧,上下游能牽扯到十幾種技術(shù),而且這些技術(shù)之間,每個(gè)版本還需要仔細(xì)考量,最新的版本,往往還互相不兼容。

(3) 業(yè)務(wù)代碼編排引擎:雖然是低代碼開發(fā)平臺,但是稍微復(fù)雜的一些應(yīng)用,比如,進(jìn)銷存,還是需要大量代碼介入的,但是界面已經(jīng)由最終用戶生成,如何把代碼插入到界面當(dāng)中去?實(shí)際上,所有的BPM引擎或者OA工作流引擎,都是支持代碼插入的,但是現(xiàn)在所有的BPM引擎,包括國內(nèi)知名公司的產(chǎn)品,都不是基于微服務(wù)架構(gòu)或者Spring MVC/Spring Boot機(jī)制的,所有的代碼都用自己的方式藕合在一起,BPM就是一個(gè)無法拆分的單體應(yīng)用,這還不是最可怕的,最可怕的是BPM的代碼插入機(jī)制,BPM允許插入的代碼,數(shù)據(jù)庫連接,與它的工作流引擎,是隔離開的,不在一個(gè)事務(wù)中。不在一個(gè)事務(wù)中最大的問題并不是插入數(shù)據(jù)失敗后不能同增同減這么簡單,這只是一個(gè)已知的用戶可接受的問題,最大的問題還是這種機(jī)制會(huì)造成數(shù)據(jù)庫連接池的內(nèi)存泄漏或者是數(shù)據(jù)庫連接池很快就用完了,造成系統(tǒng)每隔一段時(shí)間,系統(tǒng)就會(huì)變得異常緩慢。所以,如何把第三方代碼無縫的插入到界面當(dāng)中去,不造成內(nèi)存泄漏或者數(shù)據(jù)庫連接池泄漏,也是一個(gè)考驗(yàn)架構(gòu)師的技術(shù)活;

(4) 流程引擎。關(guān)于流程引擎,現(xiàn)在一般都是基于Activiti 進(jìn)行二次開發(fā),不過國內(nèi)的BPM流程引擎,由于跟審批綁定得太緊,所以都有掛表單的操作, BPM掛表單,是把表單、流程、存儲(chǔ)三位一體,一個(gè)是這種方案,給以后微服務(wù)的拆分造成無法拆分的問題,自身又是一個(gè)單體應(yīng)用,造成性能問題無法優(yōu)化;其次,掛表單,剛才講了,前端技術(shù)變化太快,所以表單改為Vue、React以后,也會(huì)造成原來的工作流引擎改動(dòng)太大,最后就是不能改動(dòng)。所以,如何用互聯(lián)網(wǎng)的思維,改動(dòng)Activiti,適應(yīng)微服務(wù)拆庫、拆表、前后端分離的改造,也是一個(gè)懸掛在架構(gòu)師頭上的一個(gè)問題。不知道阿里巴巴的宜搭是如何解決這個(gè)問題的,我看宜搭也是有自己的工作流引擎的

(5) 報(bào)表生成器:國內(nèi)做報(bào)表組件的公司也非常多,一般跟BI掛上鉤,顯示自己高大上,就跟國內(nèi)一般不提自己是OA引擎,而說自己是BPM一樣(實(shí)際我看國內(nèi)BPM的使用就是快速開發(fā)和解決審批流程的,與標(biāo)榜的業(yè)務(wù)流程優(yōu)化一毛錢關(guān)系也沒有)。國際知名BI廠商如TableU、國內(nèi)也有FineReport等等,快速開發(fā)平臺也需要搭建自己的查詢、報(bào)表生成器,不過,這個(gè)與界面渲染引擎、業(yè)務(wù)代碼編排引擎比較起來,還算是比較成熟的技術(shù)。

(6) 與外界第三方系統(tǒng)的實(shí)時(shí)交互。使用低代碼開發(fā)平臺,一般不會(huì)開發(fā)ERP(當(dāng)然SAP的ERP就是低代碼開發(fā)平臺的鼻祖和典范,但是他把實(shí)施搞的太復(fù)雜了,一點(diǎn)不比定制開發(fā)來的費(fèi)用低)、MES等復(fù)雜應(yīng)用,但是現(xiàn)在由于客戶生存環(huán)境也是越來越復(fù)雜,一個(gè)系統(tǒng)往往不能獨(dú)立存在,需要大量和其它第三方系統(tǒng)進(jìn)行交互,所以,如何實(shí)時(shí)的與其它系統(tǒng)進(jìn)行交互?這里推薦兩種方式:

第一種:通過監(jiān)控?cái)?shù)據(jù)庫日志,數(shù)據(jù)的任何變化,都通過數(shù)據(jù)庫日志實(shí)時(shí)同步到Kafaka之類的MQ上,其它第三方應(yīng)用通過訂閱的方式,并通過頻道隔離開,監(jiān)控自己感興趣的數(shù)據(jù),并實(shí)時(shí)做出反應(yīng)就可以了;

第二種:通過編寫通用的SQL 轉(zhuǎn)API,最終用戶也可以通過界面拖拽方式,生成SQL,并通過引擎,把該SQL最終轉(zhuǎn)換為微服務(wù)的API,供第三方調(diào)用

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部
秦皇岛市| 双桥区| 顺昌县| 无棣县| 广安市| 盐津县| 安岳县| 定安县| 多伦县| 宁城县| 巴青县| 额济纳旗| 巴林左旗| 成安县| 突泉县| 龙胜| 土默特右旗| 平舆县| 红河县| 南昌县| 景谷| 乌拉特中旗| 津市市| 晴隆县| 华亭县| 榆林市| 肃南| 新干县| 隆尧县| 玛多县| 永定县| 茂名市| 北票市| 海丰县| 安西县| 新晃| 河津市| 榆社县| 平定县| 英德市| 涿州市|