雲原生IDE:iVX首個通用且強大無代碼開發平台
- 1、前言:iVX是什麼?
- 2、iVX——首個通用無代碼開發平台
- 首個
- 開發平台
- 無代碼
- 通用
- 3、iVX系統架構
- 應用架構概覽
- 前端技術架構
- 背景技術架構
- 4、iVX适合什麼樣的使用者?學習周期?
- iVX适合怎樣的使用者
- 需要學習多長時間?
- 5、iVX總結
- 6、動手實踐iVX無代碼開發
1、前言:iVX是什麼?
首先在設計之初,需要需要明确的幾點是:
- 浏覽器端的IDE
- 盡可能無代碼并能支援全場景應用的開發
- 盡可能一次開發支援多套系統營運
- 對雲和應用導出部署有良好的支援
2、iVX——首個通用無代碼開發平台
首先進行剖析
通用、無代碼、開發平台、首個
其中具有的深刻含義
首個
在國内還未發現有類似的平台出現,現階段做的最好的
Mendix/Outsystems
等也隻能稱做“低代碼”開發平台(還做不到“複雜邏輯的無代碼表達”);而國内很多産品,由于不具備生成可導出部署獨立應用的能力,還不能算作“開發平台”。
開發平台
iVX
所開發的應用,都可以脫離
iVX
獨立部署。也就是說,對于開發者而言,
iVX
就是一個“代碼生成器”。和手寫代碼無差别,可以脫離iVX平台任意部署,而大多數其它“低代碼”平台不具備這種“開發平台”屬性,隻能在平台内部使用。
無代碼
iVX提供了“原子級”元件系統,支援使用者“自定義元件”,并且配合圖靈完備的“邏輯編輯引擎/面闆”,就可以實作幾乎所有應用的前背景“無代碼”開發。
通用
指平台的通用性,幾乎适合所有的應用開發場景和支援在所有作業系統中運作。
- 支援的作業系統:浏覽器WebApp、Android/iOS、小程式、小遊戲、釘釘、Win/Mac/Linux、也支援最新的國産鴻蒙。
- 支援的開發場景:支援中大型複雜應用(基于無代碼的邏輯編排引擎),電商、大資料應用、表單、工作流、Bi、任務流、OA系統、工業物聯網、遊戲、網站、視訊應用、IM等等。
限制條件:
- 一般不建議用iVX來直接實作大型算法(建議封裝之後在iVX内部調用);
- 不支援作業系統級軟體的開發,例如防毒軟體(iVX主體是基于Web開發環境);
- 大型3D的MMORPG多人線上遊戲開發(一般采用專業遊戲開發引擎制作)。
3、iVX系統架構
應用架構概覽
一個iVX應用,主要由兩個部分構成,前台部分和背景部分:
- 前台部分,對應前端應用程式,負責用戶端界面的展示與互動。在iVX中,前端程式支援多種類型,包括web應用,小程式,原生app,與windows exe應用。在運作時,每個使用者都會在本地用戶端下載下傳一份前端程式來運作;
- 背景部分,對應服務端程式,部署在背景伺服器(叢集)中,負責背景資料與通信邏輯的處理。背景部分進一步包括背景資源接口和服務邏輯:
- 背景資源接口,主要包含各種資料庫,api,緩存,檔案等背景資源的操作接口,每一種接口都對應iVX中的一個背景元件。注意,iVX僅負責生成應用程式,并不提供背景資源本身。是以,要運作iVX的背景程式,需要額外接入背景資源,比如mysql資料庫,redis等等。在iVX公有雲上,這些資源已經自動接入,是以可以iVX應用可以直接釋出運作;如果選擇私有部署,則需要自行準備資源,詳見私有部署相關文檔;
- 服務邏輯,主要包含服務元件,是前端程式和背景資源進行互動的“中央樞紐”。其提供了一個HTTP的服務接口(REST API),可以供iVX前端部分應用或其他第三方應用來調用,同時,可以直接操作各種背景資源,并定義内部處理邏輯。
舉一個簡單的🌰,假設有一個收集使用者資訊的應用,其結構如下圖:
左側使用者界面,即前端應用,其運作在使用者的浏覽器端,負責收集使用者填寫的資訊;右側的資料庫表,即背景資源,負責存儲所有使用者送出的資訊;中間的送出服務,即背景的服務層,負責監聽前端應用發送過來的請求,對請求的資料進行處理,比如,判斷一下送出的資料是否合法,然後調用資料庫表,寫入資料。資料寫入之後,服務還需要根據寫入是否成功,将結果傳回給前端應用,這樣前端應用可以把資料送出結果在界面上提示出來。
前端技術架構
iVX
的前端核心架構為web應用,主體使用
react架構
,部分内部子產品使用了自研的對象驅動引擎,并引用了
pixi.js, three.js
等畫布渲染庫。同時,web應用可以通過不同的打包方法生成其他類型的應用,如下圖所示:
背景技術架構
iVX的背景程式,可以直接釋出在iVX公有雲上運作,也可以導出部署至其他伺服器環境。其詳細架構如下圖所示:
一個iVX的背景應用,從邏輯上分成4個部分:
- 服務請求處理層,負責處理http請求,微服務路由,生成證書等工作,其程式代碼由GO語言實作,在iVX公有雲上,這一部分部署在AWS的容器服務上。
- 服務邏輯層,負責應用服務邏輯的實作,即我們在服務事件面闆中定義的所有邏輯。這一部分程式代碼是目前是js,在iVX公有雲上,由AWS的無伺服器函數計算來運作;
- 背景資源接口層,負責提供各種背景資源的調用方法,比如資料庫的操作方法,檔案的上傳方法,這一部分程式代碼也是由GO語言實作,和第一層一樣,公有雲上部署在AWS的容器服務上;
- 背景資源,即各種資料庫、緩存、檔案等資源,iVX并不直接提供這些資源,是以在上圖中用灰色表示。在公有雲上,各種資源主要使用AWS的分布式雲資源。
4、iVX适合什麼樣的使用者?學習周期?
iVX适合怎樣的使用者
iVX的學習并不需要什麼特别的技術和基礎,隻要你覺得自己的“邏輯能力”還不錯,應該都可以很好掌握這門程式設計語言。總體來說iVX适合(但不限于)以下使用者使用:
- 想要學習并未來從事網際網路程式設計的人
- 想要轉型網際網路工作的人或學生
- 在校學生和老師(計算機相關專業、藝術設計相關專業、理工科等)
- 初級中級的前端或背景開發者
需要學習多長時間?
iVX
畢竟是一門程式設計語言,有很多元件以及完整的程式設計體系,不可能
“看半小時”
就學會了。
iVX
的學習一定需要一定的投入,但這種投入是非常有意義的,很有可能未來的很多年裡面iVX都會成為你學習工作的得力助手。
學習時長内部測試:
- 計算機相關專業或從事過1年以上程式設計工作的人,2周左右可以基本掌握iVX并進行項目開發;
- 從來沒有程式設計經驗的理工科專業畢業學生,2個月左右可以基本掌握iVX并進行項目開發。
5、iVX總結
iVX相較于傳統的程式設計方式的優勢可以總結為
四快
快速學習
邏輯上其實很簡單,因為iVX沒有任何文法需要學習,圖形化的操作使整個開發步驟也大大簡化,是以iVX學習者隻需要從邏輯和具體功能(或架構)入手,就可以完成開發。
快速開發
根據使用者熟練程度和使用規模,
iVX
可以數倍提升開發效率,往往以前10個人幹3個月的工作,使用iVX後,現在3個人不到一個月就能完成。
快速運作
這一點得益于
iVX的核心CORE部分
,包括編譯和文法生成翻譯,以及内部各種核心算法,都是真正的
“大神級程式員”
,是以,開發者使用iVX開發的時候,就相當于獲得了這位“大神”的加持,是以生成的代碼品質也能得到保障。
快速維護