風口上的“低代碼”,是時候來系統(tǒng)學一學了(風口代碼和附件圖)
2019年開始,低代碼爆火。
有人認為它是第四代編程語言,有人認為它是開發(fā)模式的顛覆,也有人認為是企業(yè)管理模式的變革……有很多聲音,社區(qū)討論很熱烈。
- 低代碼為何會興起?
- 什么是低代碼?
- 如何實現(xiàn)低代碼開發(fā)?
下面就以上問題來一一探討!
1
低代碼為何會興起?
微服務、平臺化、云計算作為當前的IT技術熱點,主要強調(diào)共享重用,它們促進了軟件快速交付和部署。
然而,大多數(shù)軟件即使采用了微服務技術或者平臺化思路,也難以做到通過軟件共享重用來快速滿足業(yè)務需求的變化,大部分需求仍需重新開發(fā)實現(xiàn),導致軟件交付時間長。
這類開發(fā)不僅工作量大、技術含量低,而且個性化程度高和共享度低。
做這類開發(fā)時,無非是在某個表中增加幾個字段,然后做些在界面增加相關錄入屬性、調(diào)整后臺服務邏輯和流程流轉(zhuǎn)控制等細枝末節(jié)的改進,軟件本身并沒有發(fā)生重大變化。
因此,通過低代碼開發(fā)平臺快速配置發(fā)布軟件成為當前軟件業(yè)的一個熱點。
同時,隨著國內(nèi)創(chuàng)業(yè)環(huán)境變得越來越好,近幾年中小型企業(yè)數(shù)量更是蹭蹭往上漲,在市場上有著矚目的地位。
雖然中小型企業(yè)的數(shù)量很多,但是缺乏一定的資金與技術支持,如果走傳統(tǒng)應用開發(fā)模式來開發(fā)應用,那無論是技術還是資金鏈都很難負擔。
而低代碼開發(fā)模式不需要高成本與專業(yè)技術就能開發(fā),降低了開發(fā)者門檻,于是就成了中小型企業(yè)的香餑餑。
2
什么是低代碼?
低代碼是傳統(tǒng)軟件開發(fā)逐步優(yōu)化和演變的產(chǎn)物。
低代碼開發(fā)平臺作為一種新的應用程序開發(fā)模式和工具,具有模型驅(qū)動、開放集成、可視化引導、自動化開發(fā)的特點。有利于企業(yè)高效靈活地支持未知的場景,保證企業(yè)IT資產(chǎn)復用的便利性和高效性,提升企業(yè)核心競爭力和商業(yè)價值。
低代碼開發(fā)平臺(LCDP)本身也是一種軟件,它為開發(fā)者提供了一個創(chuàng)建應用軟件的開發(fā)環(huán)境。
對于程序員而言,低代碼開發(fā)平臺的性質(zhì)與IDEA、VS等代碼IDE(集成開發(fā)環(huán)境)幾乎一樣,都是服務于開發(fā)者的生產(chǎn)力工具。
與傳統(tǒng)代碼IDE不同的是,低代碼開發(fā)平臺提供的是更高維和易用的可視化IDE。大多數(shù)情況下,開發(fā)者并不需要使用傳統(tǒng)的手寫代碼方式進行編程,而是可以通過圖形化拖拽、參數(shù)配置等更高效的方式完成開發(fā)工作。
低代碼開發(fā)平臺能夠?qū)崿F(xiàn)業(yè)務應用的快速交付。
也就是說,不只是像傳統(tǒng)開發(fā)平臺一樣“能”開發(fā)應用而已,低代碼開發(fā)平臺的重點是開發(fā)應用更“快”。更重要的是,這個快的程度是顛覆性的:根據(jù)Forrester在2016年的調(diào)研,大部分公司反饋低代碼平臺幫助他們把開發(fā)效率提升了5-10倍。而且我們有理由相信,隨著低代碼技術、產(chǎn)品和行業(yè)的不斷成熟,這個提升倍數(shù)還能繼續(xù)上漲。
低代碼開發(fā)平臺能夠降低業(yè)務應用的開發(fā)成本。
一方面,低代碼開發(fā)在軟件全生命周期流程上的投入都要更低(代碼編寫更少、環(huán)境設置和部署成本也更簡單);另一方面,低代碼開發(fā)還顯著降低了開發(fā)人員的使用門檻,非專業(yè)開發(fā)者經(jīng)過簡單的IT基礎培訓就能快速上崗,既能充分調(diào)動和利用企業(yè)現(xiàn)有的各方面人力資源,也能大幅降低對昂貴專業(yè)開發(fā)者資源的依賴。
低代碼開發(fā)平臺的目標是通過圖形化快速配置,盡可能不寫代碼或者編寫極少量代碼即可實現(xiàn)業(yè)務功能。
3
如何實現(xiàn)低代碼開發(fā)?
既然低代碼開發(fā)已經(jīng)逐漸成為未來的一種趨勢,很多人都在嘗試使用低代碼平臺,而更多人也在思考低代碼開發(fā)平臺作為軟件自身是如何實現(xiàn)的!
如果你想要抓住“低代碼”這個風口,學習如何開發(fā)低代碼平臺,那么可以看一下這本系統(tǒng)講解低代碼開發(fā)的新書《低代碼開發(fā)平臺的設計與實現(xiàn)――基于元數(shù)據(jù)模型》!
本書系統(tǒng)地介紹一種低代碼開發(fā)平臺的設計思路和實現(xiàn)方式——元數(shù)據(jù)模型。
在面向不同用戶或者場景時,該方法可以通過簡單配置或者低代碼開發(fā)、甚至零代碼開發(fā),來快速實現(xiàn)業(yè)務需求,最終使得軟件具有靈活性好、適應變化能力強、維護簡單、穩(wěn)定性好、重用度高等特點。
一般來說,軟件由數(shù)據(jù)結構(模型)、服務、規(guī)則、數(shù)據(jù)庫、流程和操作界面組成。軟件的變化,一般是由模型變化帶來的如服務、規(guī)則、流程和操作界面的一系列變化。
目前,市場上常見的解決機制是引入規(guī)則引擎或者流程引擎,以提升軟件的適應性,但實際上,單純的規(guī)則或者流程變化的需求反而不多,常常要求模型變化之后帶來系統(tǒng)性的變化。而模型變化通常被理所當然地認為只有經(jīng)過代碼開發(fā)才能實現(xiàn)。
因此,如何應對模型變化是低代碼開發(fā)平臺首先要解決的技術難點。
元數(shù)據(jù)模型是模型變化問題的有效解決方案,在很多軟件中都采用了該設計思路,尤其是某些產(chǎn)品化程度很高的軟件。
這本書講了什么
本書將系統(tǒng)地呈現(xiàn)這種設計思路——元數(shù)據(jù)模型——在不修改代碼的前提下,實現(xiàn)模型的靈活變化,進而實現(xiàn)數(shù)據(jù)庫、服務、規(guī)則、流程和操作界面的變化。
低代碼開發(fā)平臺有很多種實現(xiàn)方式,元數(shù)據(jù)模型驅(qū)動的設計是其中主要的一種方式。
本書聚焦于系統(tǒng)化的元數(shù)據(jù)模型驅(qū)動的設計思路,采用該設計思路實現(xiàn)的軟件具有低代碼開發(fā)平臺的軟件特點。
為了重點突出元數(shù)據(jù)模型驅(qū)動的設計思路,盡量避免其他內(nèi)容干擾,本書不介紹與規(guī)則引擎和流程引擎相關的內(nèi)容,而是重點介紹元數(shù)據(jù)模型、服務、持久化機制、元數(shù)據(jù)模型界面展現(xiàn)和元數(shù)據(jù)模型的模型,即通過元數(shù)據(jù)模型來描述元數(shù)據(jù)模型自身。
本書內(nèi)容分為如下章節(jié):
- 第1章介紹低代碼開發(fā)平臺的實現(xiàn)方式、元數(shù)據(jù)模型概念,并且綜述本書所達到的需求目標;
- 第2章介紹基于元數(shù)據(jù)模型實例之上的通用服務設計,通過這些服務可以實現(xiàn)所有元數(shù)據(jù)實例的增刪改查的功能;
- 第3章介紹如何將元數(shù)據(jù)模型的實例保存到數(shù)據(jù)庫中,通過數(shù)據(jù)庫映射配置,將實例映射到數(shù)據(jù)庫;
- 第4章介紹如何將元數(shù)據(jù)模型實例從數(shù)據(jù)庫中按照條件查詢,通過配置查詢條件和查詢結果實現(xiàn)通用的實例查詢功能;
- 第5章介紹主數(shù)據(jù),這是元數(shù)據(jù)模型在主數(shù)據(jù)方面的簡單應用,主數(shù)據(jù)也是后續(xù)章節(jié)的基礎;
- 第6章介紹元數(shù)據(jù)實例在界面上如何展現(xiàn),通過配置頁面布局實現(xiàn)對實例的動態(tài)展現(xiàn),而不需要定制開發(fā)界面程序代碼;
- 第7章介紹元數(shù)據(jù)實例的功能配置,實現(xiàn)從前端界面到后臺服務之間的聯(lián)動,將模型、服務、數(shù)據(jù)庫和界面展現(xiàn)有機地組織成一個完整的軟件功能,并且可以動態(tài)配置新功能,動態(tài)擴展軟件能力;
- 第8章介紹如何用元數(shù)據(jù)模型實例管理元數(shù)據(jù)自身,也就是元數(shù)據(jù)模型的模型(這里沒有寫錯,是模型的模型),應對元數(shù)據(jù)模型自身的變化,這是本書最為抽象的地方,也是元數(shù)模型能夠發(fā)揮到極致的能力表現(xiàn)。
由于元數(shù)據(jù)模型非常抽象,解釋元數(shù)據(jù)本身就是非常困難的工作,因此本書的有些地方為了精確地表達意思,不厭其煩地加上了很多定語,同時提供比較多的程序代碼來解釋元數(shù)據(jù)模型的實現(xiàn),以便讀者充分理解。
本書特色