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