高低代碼平臺(tái)邊界12問(低代碼平臺(tái)技術(shù)框架)
當(dāng)下的IT市場(chǎng),低代碼大行其道。本質(zhì)上,低代碼是業(yè)務(wù)與技術(shù)不斷尋求融合的結(jié)果,在IT歷史里一直存在。我們更需要關(guān)注的是處理好高低開的關(guān)系,形成融合方案,方能幫助企業(yè)級(jí)應(yīng)用更敏捷的建設(shè)。
普元數(shù)智研究院首席顧問顧偉、喻吉林通過訪談形式共同圍繞目前企業(yè)低代碼開發(fā)建設(shè)的市場(chǎng)背景、實(shí)施問題、高低開融合等常見問題作了詳細(xì)解答。
訪談問題概覽:
1. 怎么看低代碼平臺(tái)這個(gè)市場(chǎng)熱點(diǎn)?
2. 低代碼平臺(tái)實(shí)施遇到過哪些問題?
3. 高代碼平臺(tái)和低代碼平臺(tái)如何融合?
01.
怎么看低代碼平臺(tái)這個(gè)市場(chǎng)熱點(diǎn)
Q1:低代碼開發(fā)平臺(tái)的目標(biāo)用戶群到底是誰(shuí)?
喻吉林:我們更多地希望賦予現(xiàn)在的低代碼開發(fā)平臺(tái)“行業(yè)”或“業(yè)務(wù)”的含義,讓更廣泛的人群能夠參與到平臺(tái)使用中。所以,平臺(tái)不僅僅是一個(gè)通用的技術(shù)平臺(tái),它需要隨著業(yè)務(wù)積累,形成更行業(yè)化的模型和元素。
事實(shí)上,低代碼開發(fā)平臺(tái)的目標(biāo),最終一定是在某個(gè)行業(yè)或領(lǐng)域能夠更好地服務(wù)于大眾,但低代碼開發(fā)平臺(tái)并不是僅僅服務(wù)于初級(jí)人員,用以提升初級(jí)人員的業(yè)務(wù)能力;低代碼開發(fā)平臺(tái)更多地是服務(wù)于有一定業(yè)務(wù)知識(shí)積累,有一定的業(yè)務(wù)建模能力的業(yè)務(wù)專業(yè)人員。見過一些工程師,拿著低代碼平臺(tái)開始無(wú)序地建設(shè)系統(tǒng),最終的成果依然不及預(yù)期,其根本原因是缺少對(duì)于業(yè)務(wù)模型的理解。只有持續(xù)運(yùn)用建模思維提升自己對(duì)業(yè)務(wù)模型的理解,才能夠在低代碼的使用中得心應(yīng)手,更加可以提升自身的架構(gòu)能力。
Q2:以前也有企業(yè)做低代碼,為何反響一般?
喻吉林:低代碼市場(chǎng)很大,國(guó)內(nèi)大小廠商都在做低代碼,但獲得的收入一般。我認(rèn)為,低代碼不是銀彈,本身來(lái)說,無(wú)論服務(wù)于哪個(gè)行業(yè),都有其自身的邊界。
低代碼平臺(tái)有它的邊界和局限性,早期的低代碼平臺(tái),往往并不能解決所有的問題。建設(shè)系統(tǒng)時(shí)存在各種不支持的場(chǎng)景,如果總是想著利用低代碼自身的功能繞過去,必然給程序帶來(lái)眾多“壞味道”,那自然反響不會(huì)好。所以,低代碼的建設(shè),更應(yīng)該關(guān)注將典型的業(yè)務(wù)場(chǎng)景抽象出來(lái),形成標(biāo)準(zhǔn)化的業(yè)務(wù)模型、業(yè)務(wù)流程和業(yè)務(wù)規(guī)則,同時(shí)提供必要的擴(kuò)展接口和替換接口,與高代碼實(shí)現(xiàn)很好的擴(kuò)展融合,也正是我們不斷探索實(shí)踐中的發(fā)展方向。
Q3:國(guó)內(nèi)外對(duì)低代碼熱點(diǎn)的看法上,有什么差異?
顧偉:國(guó)外的低代碼,通常是通過在線IDE模式來(lái)呈現(xiàn),本質(zhì)上首先是開發(fā)工具,然后才是業(yè)務(wù)的逐步積累和生態(tài)的持續(xù)打通。國(guó)內(nèi)的低代碼,更多是領(lǐng)域應(yīng)用的快速配置或生成,通常還會(huì)伴隨一些BI場(chǎng)景。
另外,國(guó)外低代碼很注重完整解決方案(比如和原有技術(shù)的融合、DevOps等),而國(guó)內(nèi)的大部分低代碼會(huì)有一個(gè)相對(duì)封閉的問題,這個(gè)是需要逐步解決的,不能最終變成一個(gè)新孤島的引入。
02.
低代碼平臺(tái)實(shí)施遇到過哪些問題
Q4:普元低代碼平臺(tái)聚焦的要點(diǎn)有哪些?
顧偉:第一個(gè)是適配。“敏捷化”的試錯(cuò)試對(duì)很重要。其實(shí)我們也做過兩個(gè)大版本,第一版中,我們追求的是快速地頁(yè)面設(shè)計(jì)、流程配置等,在這個(gè)過程中,我們發(fā)現(xiàn),模型、UI、標(biāo)準(zhǔn)等在開發(fā)中,尤其面向大型的銀行,央企時(shí),會(huì)有不少問題。比如UI性能不夠怎么辦?數(shù)據(jù)模型怎么優(yōu)化?個(gè)性化需求實(shí)現(xiàn)不了怎么交付?
所以在第二版中,我們聚焦重點(diǎn)變了,期望在不影響企業(yè)現(xiàn)有的技術(shù)和管理前提下,能夠更好地進(jìn)行適配。比如,企業(yè)已經(jīng)有流程平臺(tái)了,那就不要再帶一個(gè)流程引擎進(jìn)去了,而是應(yīng)該和企業(yè)現(xiàn)有的流程平臺(tái)做好適配。
另一個(gè)是安全。前段時(shí)間“護(hù)網(wǎng)行動(dòng)”中很有感觸,安全現(xiàn)在肯定是國(guó)家、企業(yè)的重點(diǎn),低代碼平臺(tái)所開發(fā)出來(lái)的各類資源,能不能具備細(xì)粒度API安全、數(shù)據(jù)安全特性,也是我們的重要關(guān)注點(diǎn)。
Q5:到底是數(shù)據(jù)模型驅(qū)動(dòng),還是UI模型驅(qū)動(dòng)?
喻吉林:數(shù)據(jù)模型驅(qū)動(dòng)。現(xiàn)實(shí)生活中,用戶的交互UI可能更合適,但UI只是我們某些展現(xiàn)形式,核心價(jià)值是由背后的模型來(lái)決定的。
本質(zhì)上,由核心數(shù)據(jù)模型驅(qū)動(dòng)企業(yè)業(yè)務(wù),需要通過模型的不斷抽象和豐富,來(lái)解決業(yè)務(wù)上的困惑,而不只通過UI界面。UI界面是從UI體驗(yàn)工程師出發(fā)的,這種方式能夠很好地解決用戶交互問題,但企業(yè)級(jí)建模不止有UI模型,UI模型只是企業(yè)建模中的一部分。單純從UI模型出發(fā),并不能解決業(yè)務(wù)建模的核心問題,脫離企業(yè)業(yè)務(wù)模型談UI就有些本末倒置的。
Q6:到底是生成代碼,還是解析執(zhí)行?
顧偉:我選擇走“生成代碼”的模式。需要說明的是,不是說一定要生成出代碼,然后走傳統(tǒng)高開模式,而是能夠生成代碼,保障高性能和可維護(hù)性。高低開融合,本質(zhì)上期望的是資源都在一套引擎里運(yùn)行,切勿一套原生運(yùn)行、另一套解析執(zhí)行。如果大家追求應(yīng)用的性能、個(gè)性化、維護(hù)性等,建議低開具備生成代碼的能力。
Q7:個(gè)性化需求一般怎么處理?
顧偉:個(gè)性化需求本質(zhì)上也是一種抽象不夠的問題,說白了就是還沒有抽象出低開能力來(lái)應(yīng)對(duì)?,F(xiàn)階段我們是通過高低開融合來(lái)解決這個(gè)問題的,隨著對(duì)場(chǎng)景的逐步積累,相信我們能夠更好地應(yīng)對(duì)原來(lái)不支持的場(chǎng)景。
Q8:應(yīng)用和數(shù)據(jù)的隔離性怎么保障?
顧偉:本質(zhì)上,高代碼和低代碼,應(yīng)該是一套隔離模式。以前高代碼,大家的應(yīng)用和數(shù)據(jù)基本上是完全隔離的,但為什么到低代碼的時(shí)候,有些人好像會(huì)覺得無(wú)所謂了呢?我認(rèn)為是不對(duì)的。
普元低代碼,具備和高代碼一樣的隔離架構(gòu)設(shè)計(jì),高和低共同組成了一個(gè)物理上獨(dú)立的應(yīng)用,而不是共享在一個(gè)平臺(tái)進(jìn)程里運(yùn)行。
03.
高代碼平臺(tái)和低代碼平臺(tái)如何融合
Q9:高代碼和低代碼平臺(tái)應(yīng)該怎么分工?
顧偉:高代碼和低代碼,最終共同形成了一個(gè)完整應(yīng)用,應(yīng)用一部分靠高代碼實(shí)現(xiàn)復(fù)雜邏輯和計(jì)算,另一部分是則靠低代碼實(shí)現(xiàn)快速業(yè)務(wù)。高低開融合,要做到的就是讓低開不會(huì)成為新的孤島,所以企業(yè)在建設(shè)低代碼時(shí),一定要結(jié)合現(xiàn)有的技術(shù)和服務(wù)。
或者換一種說法,當(dāng)下要Java邏輯實(shí)現(xiàn)的,肯定是高代碼,如果能抽象的自然要低代碼。從技術(shù)層面,比如寫一個(gè)流程選參與者的動(dòng)態(tài)計(jì)算,那一般是高代碼;如果做一層業(yè)務(wù)化,選擇已經(jīng)做好的規(guī)則,比如我的領(lǐng)導(dǎo),我的下屬這種業(yè)務(wù)上的角色,自然就逐步低代碼了,這就是一個(gè)合理分工和邊界移動(dòng)的過程。
Q10:高代碼和低代碼引擎如何能做到一致?
顧偉:高低開融合的核心就是引擎,且必須是一套引擎,包括頁(yè)面引擎,流程引擎,服務(wù)編排引擎,API引擎,訪問數(shù)據(jù)引擎等。如果沒有統(tǒng)一引擎,勢(shì)必會(huì)建設(shè)成兩塊東西,比如按會(huì)產(chǎn)生沖突,無(wú)法融合。在高代碼平臺(tái)基礎(chǔ)上補(bǔ)充低代碼,需要先花一段時(shí)間建設(shè)融合引擎的能力,然后定制符合你引擎的低代碼平臺(tái),不要弄成新的一套平臺(tái),最終沒法融合管理。
Q11:普元高低代碼融合平臺(tái)優(yōu)勢(shì)在哪里?
顧偉:優(yōu)勢(shì)之一:我們這版高低代碼融合,合理地做了工作切分,這樣我們所面向的相對(duì)復(fù)雜的業(yè)務(wù)系統(tǒng)支撐力會(huì)更大。
優(yōu)勢(shì)之二:我們不會(huì)特別去改變企業(yè)的技術(shù)架構(gòu),我們更多走的是適配思路,對(duì)既有的流程引擎也好,數(shù)據(jù)引擎也好,通過開放集成,最大化地形成利舊。
Q12:市場(chǎng)會(huì)如何發(fā)展?客戶需求會(huì)如何發(fā)展?
喻吉林:我展望的低代碼平臺(tái)一定是未來(lái)的發(fā)展趨勢(shì)。很多年后,我們不太可能稱它為“低代碼開發(fā)平臺(tái)”,“Low”這個(gè)詞就沒了。比如,十幾年前你買了一部新手機(jī),別人會(huì)問你,你買的是“智能”手機(jī)還是手機(jī)(諾基亞等帶鍵盤的功能手機(jī))?那時(shí)對(duì)手機(jī)的概念就是“有鍵盤”的手機(jī),如今我們提到手機(jī),想到的肯定是沒有鍵盤的手機(jī)。從“智能手機(jī)”到“手機(jī)”的歷程,“智能”這個(gè)詞就被去掉了,但是“智能“早已深入人心。我相信,未來(lái)所有平臺(tái)都應(yīng)該朝向更輕量級(jí)的代碼、更智能化的編碼邁進(jìn),這是開發(fā)平臺(tái)的標(biāo)配。
未來(lái)的開發(fā)平臺(tái)必將是低代碼開發(fā)平臺(tái),但終將形成一套新的開發(fā)平臺(tái)和新的開發(fā)模式,解決應(yīng)用或業(yè)務(wù)的問題。每個(gè)時(shí)期都會(huì)有新鮮的血液替代原有的血液,低代碼平臺(tái)是我能看到的一個(gè)趨勢(shì),新的趨勢(shì)讓我終將看到新一代的開發(fā)平臺(tái),一定會(huì)有一個(gè)更開放的模式,幫助更多人參與IT建設(shè)中。
低代碼平臺(tái)在業(yè)界是否會(huì)大賣?我認(rèn)為,它終將成為我們固有的一個(gè)基礎(chǔ)設(shè)施,能為我們解決很多問題。現(xiàn)在發(fā)展也不晚,因?yàn)槟壳皼]有任何廠商獨(dú)領(lǐng)風(fēng)騷,我的判斷還沒真正定型,都在用各自的方式詮釋低代碼開發(fā)平臺(tái),形成未來(lái)新的開發(fā)模式。
上文在高低開走向融合,是低成本應(yīng)用建設(shè)的最終解決之道基礎(chǔ)上對(duì)高低開融合落地作了進(jìn)一步闡述,歡迎留言交流。
關(guān)于作者:顧偉,普元數(shù)智研究院總經(jīng)理,先后參與中信銀行,工商銀行,中航信,阿里云等客戶定制項(xiàng)目;參與并負(fù)責(zé)公司多款內(nèi)部產(chǎn)品研發(fā)工作,長(zhǎng)期致力于IT項(xiàng)目管理,總體設(shè)計(jì),用戶體驗(yàn)及咨詢工作。擅長(zhǎng)OSGI,Eclipse 插件,Web 前端,云計(jì)算,CI/CD等領(lǐng)域技術(shù),對(duì)新技術(shù)有著濃厚的興趣。
關(guān)于作者:喻吉林,普元數(shù)智研究院副總經(jīng)理,參與微服務(wù)架構(gòu)、業(yè)務(wù)中臺(tái)架構(gòu)的設(shè)計(jì)與實(shí)踐,擁有多年金融行業(yè)IT規(guī)劃、架構(gòu)設(shè)計(jì)與研發(fā)經(jīng)驗(yàn)。