什么是Low Code ? 居然能威脅到專業程序員?
周六晚上10點半,張大胖在微信上給我發了一個震驚的表情:欣哥,你知道嗎?我發現一個低代碼平臺,我們這些專業程序員可能要下崗!人人都是程序員的時代到來了!
我心頭一緊:什么是低代碼?代碼還有高低之分?
張大胖:英文是Low Code, 應該指的是代碼量少的意思吧!
張大胖發給我一個Google的鏈接,我祭出科學上網的神器打開一看,是一個叫做App Maker的低代碼平臺的介紹。
我帶著好奇看了一會兒,給張大胖發去一個流淚的表情:哥多年來的理想實現了,終于可以像當年的Visual Basic一樣,通過拖拽的方式來開發Web應用了!
張大胖:像Visual Basic一樣?
我:是啊!你是沒用過VB, VB可是快速應用開發(RAD)的典型, 用VB寫程序老簡單了, 畫一個表單,在上面拖上去幾個控件,比如標簽,輸入框,按鈕,擺好位置, 然后針對事件(比如點擊以后就是onClick)寫代碼就行了,非常方便。
對了,還有很多數據控件,可以輕松地和數據庫中的表進行綁定,增刪改查的功能都不用怎么寫代碼!輕松實現分頁,過濾這些基本功能。
張大胖很興奮:這么爽!我這個全沾工程師寫個Web程序費老勁了,配置數據庫,配置服務器,又是HTML,又是JavaScript, CSS,寫了前端寫后端,累得要死。 這VB現在怎么不用啊?
我:唉,那是C/S時代的大殺器,現在已經是B/S時代,移動時代了,VB這個開發桌面程序的東西就落伍了。
張大胖:那欣哥的意思是,這個App Maker 有點像Web時代的VB?
我:粗粗瀏覽一下,有點兒那個味道,你看它也可以通過拖拽的方式來生成界面:
張大胖撇撇嘴:這也沒什么啊,我用過XX表單,這些都是最基本的功能。
我:不一樣, 這個Low Code 平臺還能創建數據模型, 這個數據模型就像關系數據庫中的表一樣,包含一些字段(列),然后就可以把表單和數據模型進行綁定,增刪改查的功能就自動實現了, 像分頁,排序,過濾都有了,和VB中的數據控件真有點像。
張大胖:果然比XX表單高級一點。
我:不止一點, 它這個數據模型很強大,還可以支持數據模型之間的關聯,比如1對1, 1對多等等,是不是有點兒Hibernate的感覺了?
張大胖:那我猜數據模型的數據應該保存在云端了,開發人員都不必知道用的是MySQL還是PostgreSQL還是NoSQL數據庫。
我:沒錯,不用管理數據庫連接,不用寫SQL
張大胖:欣哥你看,它還可以把表單中的字段直接當作輸入參數送給Google地圖,然后在地圖上定位呢。
我:是啊,Google的那些API肯定可以互相調用的。
張大胖:既然是Low Code, 肯定還需要寫點兒代碼吧, 如果前端的應用需要調用后端的服務該怎么處理?
很明顯,張大胖還一直在拿現在的開發方式和Low Code平臺做對比。
我翻了翻App Maker 的教程,找到了相關代碼,都是JavaScript。
比如下面這段代碼是后端提供的一個服務腳本,會根據論壇ID找到論壇的版主,然后給他發送郵件
- function notifyForumOwnerServer(forumID, messageID) {
- //根據論壇ID找到forum對象
- var forum = app.models.Forum.getRecord(forumID);
- //根據消息ID找到消息對象
- var message = app.models.Message.getRecord(messageID);
- // 給版主發送郵件
- MailApp.sendEmail({
- to: forum.Owner,
- subject: 'New message in your forum: "' + forum.Title +
- '" by ' + message.Author,
- htmlBody: message.Text
- });
- }
前端調用的時候也很簡單,只要使用google.script.run加上某個服務器端函數就行,當然也支持成功和失敗的回調:
- google.script.run
- .withSuccessHandler(function(result) {
- console.log('Email sent');
- })
- .withFailureHandler(function(error) {
- console.log('Email not sent ' + error.message);
- })
- .notifyForumOwnerServer(forumID, messageID);
張大胖:明白了,這個App Maker, 已經把應用開發中最煩人的工作用圖形化的方式給搞定了, 可以定義“數據庫表”, 然后輕松綁定到表單上展示,增刪改查,報表,客戶端和服務器端交互, 這開發一個應用肯定飛快啊!
我:是啊,還有一點,你把應用在Low Code平臺中開發好以后,只需要點一個什么“發布”的按鈕,就會部署到云端,立刻可以使用。
張大胖:開發,部署,監控一條龍啊。
我:這也許就是軟件開發的趨勢吧,原來都是軟件公司給企業單位做定制化項目開發,對每個項目,都得搭建數據庫,服務器,用Java等語言寫后端程序,用JS/HTML/CSS寫前端程序,費時費力, 滿足不了企業和單位靈活多變的業務需求,一個需求從提出到實現需要很多天。現在Low Code平臺來了,企業很多的應用都可以通過拖拽的方式來生成,開發起來很快,很方便,更重要的是,一個沒有很多開發經驗的人都可以做了。
張大胖:我廢寢忘食學會的這些IT技能,難道就要被Google 給革命了嗎?
我:哈哈, 肯定不會了,這Low Code平臺只能做簡單的應用,比如整個調查問卷,項目跟蹤,人員招聘,差旅審批,公司論壇,公司商店......
張大胖:這已經很可怕了, 我整天做的不就是這樣的開發嗎.....
我趕緊轉移話題:你想想,Low Code 平臺能做一個秒殺系統嗎?
張大胖:應該不行吧!
我:能不能開發一個淘寶,京東,天貓,微信,抖音,快手,拼多多, 12306?
張大胖:那肯定不行!但是這寫都是超級龐大的系統,我們日常的工作都是小系統啊。
我:即使是小系統,如果業務很復雜,還得靠大量代碼來實現,還得依賴良好的抽象和設計,不是Low Code平臺上幾個簡單的數據模型和表單能搞定的。我覺得整個Low Code平臺賦予了企業這樣一種能力:
1. 完全不用管底層的計算設施,不用購買任何硬件,連虛擬機都不用,直接到Low Code平臺上拖過拖拽的方式,再加上少量代碼生成應用。
2. 更適合開發所謂的“快應用”, 就是需求來了,幾天就能開發出來,迅速上線,馬上使用。
張大胖:聽你這么說,我就放心了,我繼續搬磚去了。
【本文為51CTO專欄作者“劉欣”的原創稿件,轉載請通過作者微信公眾號coderising獲取授權】