企業級應用是企業軟體應用中的一個類別,被稱為軟體開發領域的"明珠"。典型的企業級應用通常可以分為三個大類,即支撐企業核心業務的應用系統(如生產製造業的MES、交通運輸業的TMS)、涵蓋企業全流程的大規模綜合型系統和基於行業軟體定製開發的個性化模組。這些企業級應用支撐著企業的核心業務發展,為推進企業數字化打下堅實的基礎。
(網際網路應用 vs 企業級應用)
隨著資訊化的推進,企業對定製化應用的需求也日漸增長。這對於技術負責人來說,這既是機遇也是挑戰:該如何才能在有限的預算下,快速開發出與企業業務需求貼合的企業級應用呢?隨著低程式碼技術的問世,模型驅動的開發方式,革命性的生產力優勢,讓越來越多的開發團隊引入低程式碼技術,加速企業級應用落地。
企業級應用對開發工具提出更高的技術要求然而,與常見的網際網路應用專案相比,支撐企業核心業務的企業級應用具有高價值、高複雜度和高技術標準等特點。這些特性決定了能夠開發企業級應用的工具,必然能夠滿足網際網路應用的開發,反之則不盡然。這就意味著選擇一款企業級應用低程式碼開發平臺,除了生產力外,還需關注工具本身的技術架構、開放程度及安全可控性等關鍵指標。
(軟體開發工具為企業數字化提速)
本文將從系統架構開始,以企業級低程式碼開發平臺活字格為例,從開發流程到程式設計擴充套件,全面介紹具備能夠支撐企業級應用開發的低程式碼開發工具,及這類工具的系統架構。
(活字格企業級低程式碼開發平臺)
開發流程與協作方式,支撐敏捷化團隊管理現代的軟體開發流程與協作模式,凝聚了數代軟體人的智慧,並形成了完整的生態系統,廣泛服務於包括企業級軟體在內的各類軟體專案。活字格企業級低程式碼開發平臺出自全球領先的開發技術提供商葡萄城,站在了巨人的肩膀上,可適配業界主流的敏捷式開發流程,覆蓋應用開發的全生命週期。
在頂層架構上看,由活字格設計器、活字格伺服器、以及第三方提供的協作伺服器構成,覆蓋企業級應用開發的全生命週期。
通常情況下,開發者使用活字格開發企業級應用的流程如下:
開發者使用安裝在自己電腦上的活字格設計器,啟動開發工作如需與其他開發者組成團隊,共同推進專案開發,或者需要進行版本管理,開發者可以利用協作伺服器(如碼雲、GitHub 等網際網路或安裝在區域網內的 Git 伺服器)和其他開發者進行協作開發者在自己的電腦上,使用活字格設計器構建資料表、服務端邏輯、頁面等元素,完成應用開發和除錯後,可以利用一鍵釋出功能,將應用打包成可釋出檔案,部署到安裝有活字格伺服器程式的伺服器上完整的活字格伺服器由活字格伺服器程式和管理控制檯網站構成。其中,系統管理員可以透過管理控制檯,視覺化管理系統使用者和許可權,並且完成網路安全、自動備份等配置工作配置完成後,終端使用者即可透過包括瀏覽器、APP、微信、釘釘等在內的多終端使用開發者構建的企業級應用了。(活字格的開發流程)
如上圖所示,使用低程式碼開發應用的流程與專業的純程式碼開發並無顯著差異,這意味著開發者可以充分借鑑軟體開發行業中積累形成的專案管理經驗,實行敏捷化的專案管理和更緊湊的產品迭代週期,滿足大規模、高複雜度的企業級開發需求。
開發出的應用架構,達到專業架構師水準為了讓企業的軟體系統長期可靠執行,規避"資料孤島"帶來的不便,企業級應用對可維護性和系統整合能力的要求遠高於網際網路應用。這就對低程式碼開發工具提出了更高的要求,不但要好用、好交付,還得好維護。而這一切,都得從使用低程式碼開發工具所構建的應用本身講起。
開發者使用低程式碼建的應用為純 HTML5 Web 應用,終端使用者能透過 PC 瀏覽器、手機 APP、微信或者釘釘來使用。支撐該應用的各個引擎和類庫,都凝聚了葡萄城在專業控制元件領域 40 年的技術積累,能全面滿足企業級應用開發所需。此外,該 Web 應用還具有很強的開放性,支援多種主流資料庫、各種系統整合外掛和開放的 API 程式設計介面。
(活字格的系統架構)
在執行時層面,活字格的執行架構,充分考慮了開發者對集中管理開發內容和靈活分發、複用開發成果的需求。使用活字格構建的應用由可釋出檔案和活字格伺服器構成,可釋出檔案須在活字格伺服器上載入和執行。可釋出檔案由活字格設計器生成,支援儲存到本地,或一鍵釋出到伺服器,其內容包含了開發者所構建的全部內容,主要包含:
支援 PC 端瀏覽器和移動端的頁面。這些頁面基於標準的 HTML5、CSS3 構建,相容性好。用來描述業務邏輯和使用者互動的指令碼。指令碼採用了活字格自定義的格式進行描述,支撐起工作流、自動化任務、ODATA 服務等。相比於傳統的指令碼語言,活字格遮蔽了平臺的差異,使用者不需要關心這些指令碼執行在 Windows 還是 Linux 的伺服器,或 PC 還是手機上的瀏覽器。使用第三方工具開發的程式集或指令碼、樣式檔案。這些檔案基於活字格提供的程式設計介面和最佳實踐構建,可以與使用活字格構建的頁面、業務邏輯和使用者互動指令碼完全融合,協同增效。(使用活字格開發出的應用)
這些內容被打包在一個檔案中,開發者可以隨時使用活字格設計器開啟和修改這些內容。為了進一步提升開發效率,活字格設計器還提供了依賴檢查和自動更新功能。如開發者修改某個資料表中的列名,活字格設計器會自動檢查使用到該列的頁面和服務端邏輯,並自動進行更新,以確保系統正常執行。統一的開發工具配合自動更新功能,讓活字格的後期維護成本遠低於"自動生成原始碼"的模式。
活字格會定期升級以增強系統的功能和效能,而基礎類庫和服務程式與開發者構建的可釋出檔案互相分離的設計,能讓開發者透過升級活字格的最新版本,及時享受到最新的軟體開發技術,讓自己開發的企業級應用,以最小的開發成本投入,跟上技術進步的浪潮。
"模型驅動"模式,不懼複雜業務場景低程式碼開發平臺在設計思想上可以分為"表單驅動"和"模型驅動"兩種。前者將頁面的表單和資料的儲存結構合二為一,而後者則與純程式碼開發類似,實現了資料與表現的完全分離。在業界的通行觀點中,"表單驅動"具有更低的使用門檻和技術門檻,但是應用場景的侷限性更高,通常僅用於開發簡單的資料填報系統,很難用在企業級應用的開發過程中。
為了滿足企業級應用對業務場景複雜度以及對資料一致性的高要求,活字格採用"模型驅動"的理念進行設計。開發者可以在活字格設計器中,分別設計用於定義資料模型的資料表,供使用者操作的頁面,以及運行於伺服器上、承載複雜業務邏輯的服務端命令。
即便是沒有受過專業程式設計訓練的平民開發者也能輕鬆構建出專業級應用,達到滿足資料庫設計正規化、表與頁面分離式設計、前後端分離架構等軟體開發行業廣泛推薦的技術要求,為企業級應用的開發和維護打下堅實的基礎。
(活字格採用模型驅動的開發方式)
程式設計擴充套件能力,開放無限可能眾所周知,企業級應用的場景複雜多變,任何一款低程式碼開發平臺都無法透過內建功能來覆蓋所有企業級應用的開發所需。但是,考慮到培訓和使用成本,國內的企業主通常更願意為覆蓋全部業務環節的系統買單。所以,程式設計擴充套件能力就成為企業級應用開發的重中之重。有了程式設計介面的支援,開發者可以用拖拉拽的方式,無編碼實現絕大多數業務需求;用編碼的方式,讓其他業務需求成功落地。這樣才能避免專案卡死在"最後一公里",解除開發者的後顧之憂。
不斷進化的活字格已經可以讓開發者用拖拉拽的方式構建出絕大多數企業級應用的功能,越來越多的企業級應用開發者在專案全程中都沒有寫過任何程式碼。但活字格並沒有止步於此,為了滿足企業級應用開發對擴充套件性的高要求,活字格還為系統的各個分層均提供了程式設計擴充套件能力。如果有必要,開發者能透過程式設計介面,精確修改各層的處理邏輯,為系統整合提供堅實的技術基礎。程式設計介面的典型應用場景如下:
CSS 樣式表:為表格或輸入框精確設定外觀樣式,滿足企業統一的UI設計風格要求前端程式設計介面:呼叫第三方硬體裝置的 ActiveX / OCX 介面,整合影象採集、讀卡器等硬體裝置後端程式設計介面:在後端整合第三方 Web API 介面,整合網際網路服務或行業軟體資料庫程式設計功能:透過儲存過程或查詢檢視,提升系統的資料處理能力(活字格的程式設計擴充套件能力)
總之,領先的技術架構是低程式碼開發技術能夠支撐企業級應用開發的必要條件。作為國內低程式碼技術趨勢的引領者,活字格凝聚了葡萄城專業開發控制元件領域40年的技術積累,可以為開發者提供專業級的工作流程與協作方式、模型驅動的開發模式以及覆蓋各層的程式設計介面,幫助開發者快速交付前後端分離的企業級應用。