先說結(jié)論: 因人而異。
會(huì)不會(huì)失業(yè),取決于你工作的內(nèi)容、你對新事物的態(tài)度、你學(xué)習(xí)新知識的能力,簡而言之,取決于你的認(rèn)知。
本文主要闡述低代碼的概念,介紹目前主流的低代碼平臺,總結(jié)低代碼平臺的典型特征、存在優(yōu)勢以及未來發(fā)展趨勢。并站在程序員的角度,分析如何在已經(jīng)到來的低代碼戰(zhàn)爭中,找到自己的定位,一展所長。
什么是低代碼?
低代碼(Low-Code)一詞最早由Forrester在2014年提出,通過少量代碼就可以快速生成應(yīng)用程序的開發(fā)平臺。這類平臺面向的是IT專家或者平民程序員,以快速交付應(yīng)用程序?yàn)槟康?,解決傳統(tǒng)軟件開發(fā)模式帶來的周期長、成本高等問題。
低代碼是一個(gè)相對的概念。從字面上看,能減少代碼量的開發(fā)方式就可以看做是低代碼。低代碼平臺指面向業(yè)務(wù)開發(fā)人員,屏蔽底層技術(shù)復(fù)雜性,以可視化方式為主,少量代碼為輔,用來快速搭建各種應(yīng)用系統(tǒng)的開發(fā)平臺。
低代碼業(yè)內(nèi)領(lǐng)軍者Outsystems有自己對低代碼的定義:低代碼是一種軟件開發(fā)方法,可以更快地交付應(yīng)用程序,并且只需很少的手工編碼。低代碼平臺是一組工具,這些工具可以通過建模和圖形界面來可視化應(yīng)用程序開發(fā)??梢允归_發(fā)人員可以跳過手工編碼,從而加快了將應(yīng)用程序投入生產(chǎn)的過程。
Mendix認(rèn)為,低代碼開發(fā)是一種可視化應(yīng)用開發(fā)方法。通過低代碼開發(fā),不同經(jīng)驗(yàn)水平的開發(fā)人員能夠通過圖形用戶界面,使用拖放式組件和模型驅(qū)動(dòng)邏輯來創(chuàng)建 Web 和移動(dòng)應(yīng)用。
從各個(gè)低碼平臺對低代碼的定義,可以看出低代碼概念的基礎(chǔ)特征:只需少量代碼、通過可視化方式開發(fā),相比傳統(tǒng)開發(fā)模式,周期短,交付快,能夠快速搭建應(yīng)用。
形式各異的低碼平臺
比較知名的低碼平臺,國外有Outsystems、Mendix,國內(nèi)有華為應(yīng)用魔方、阿里宜搭、簡道云、清流等。讓我們先來看看這些低代碼平臺研制的產(chǎn)品的功能有哪些,主要解決什么樣的問題。
華為應(yīng)用魔方
華為應(yīng)用魔方(AppCube)提供四大能力,幫助開發(fā)者高效構(gòu)建應(yīng)用。
- 頁面編排能力,可以把頁面的組件、布局、顏色進(jìn)行編排;
- 相關(guān)數(shù)據(jù)建模能力,用于保存業(yè)務(wù)數(shù)據(jù);
- 業(yè)務(wù)邏輯編排能力,基于機(jī)器自動(dòng)執(zhí)行的、不需要人為干涉的流程,可以高效編排;
- BPM的流程編排的能力,用以解決人為干涉和審批類的流程問題。
對于復(fù)雜的企業(yè)數(shù)字化場景,AppCube提供了全場景的開發(fā)能力
- 對于專業(yè)軟件開發(fā)工程師和企業(yè)IT人員,可以用低代碼開發(fā)能力快速開發(fā)應(yīng)用
- 對于業(yè)務(wù)人員,可以用零代碼能力,通過一些拖拽快速構(gòu)建
- 對于面向?qū)I(yè)領(lǐng)域的專業(yè)問題,如復(fù)雜業(yè)務(wù)算法,開發(fā)者可以使用Java、Python等語言開發(fā),以微服務(wù)的方式發(fā)布到AppCube低代碼平臺進(jìn)行托管和調(diào)用
阿里宜搭
宜搭是阿里巴巴自研的低代碼應(yīng)用構(gòu)建平臺,通過可視化拖拽的方式,傳統(tǒng)模式下需要2周才能完成開發(fā)的應(yīng)用,用宜搭2小時(shí)就能完成。用宜搭搭建應(yīng)用,你只需要關(guān)注業(yè)務(wù)本身。數(shù)據(jù)存儲、運(yùn)行環(huán)境、服務(wù)器、網(wǎng)絡(luò)安全等,平臺為你全部搞定。
宜搭通過高度的抽象,將頁面元素封裝為基礎(chǔ)組件和業(yè)務(wù)組件,將業(yè)務(wù)規(guī)則、權(quán)限等封裝為規(guī)則配置、公式和可拖拽的流程設(shè)計(jì)器,通過拖拽以及配置,無需寫代碼,即可完成符合業(yè)務(wù)需求的應(yīng)用系統(tǒng)搭建。
簡道云
簡道云是一款靈活易用的應(yīng)用搭建平臺,提供豐富的功能模塊,如:在線表單,流程,儀表盤,知識庫等功能。使用者無需代碼基礎(chǔ)即可像搭建積木一樣,快速搭建出符合需求的個(gè)性化管理應(yīng)用。
清流
輕流認(rèn)為的無代碼開發(fā)是一種無需代碼基礎(chǔ)、適合業(yè)務(wù)人員、IT開發(fā)及其他各類人員使用的、快速構(gòu)建適應(yīng)企業(yè)各種需求變化的數(shù)字化開發(fā)平臺,用戶在幾天甚至幾個(gè)小時(shí)內(nèi)就能完成系統(tǒng)的開發(fā)、測試和部署,并能夠隨時(shí)調(diào)整或更新。
Outsystems
OutSystems 是低代碼市場的長期領(lǐng)導(dǎo)者,OutSystems 的低代碼開發(fā)平臺,讓軟件開發(fā)人員和業(yè)務(wù)用戶通過直觀的可視化界面來構(gòu)建應(yīng)用程序,而不是傳統(tǒng)的編寫代碼方式。用戶可以在開發(fā)平臺靈活拖動(dòng)各個(gè)圖形化控件,以構(gòu)建業(yè)務(wù)流程、邏輯和數(shù)據(jù)模型等所需的功能,必要時(shí)還可以添加自己的代碼。
Mendix
美國原生代低代碼開發(fā)廠商,低代碼開發(fā)平臺的全球領(lǐng)導(dǎo)者之一。
Mendix大部分的功能都是優(yōu)越的,包括其數(shù)據(jù)建模和管理能力、提供數(shù)據(jù)庫及核心系統(tǒng)的連接組件,可以實(shí)現(xiàn)CRM、ERP等獨(dú)立應(yīng)用數(shù)據(jù)的聯(lián)通。
雖然每個(gè)低代碼平臺的功能形態(tài)各不相同,但是我們?nèi)匀豢梢詮闹械贸鲆恍┑痛a平臺的通用特征:
低碼平臺的核心是搭建基礎(chǔ)引擎,如:表單引擎,流程引擎,報(bào)表引擎,消息引擎,規(guī)則引擎等等。
低碼平臺要具備建設(shè)系統(tǒng)基礎(chǔ)設(shè)施能力,如:組織架構(gòu),用戶體系,權(quán)限管理等。
低碼平臺都有組件/插件庫,基于數(shù)據(jù)模型,通過可視化的頁面操作/配置來構(gòu)建應(yīng)用 復(fù)雜一點(diǎn)的低碼平臺,需要擁有集成管理的能力,如:集成現(xiàn)有系統(tǒng)的開發(fā)能力,自動(dòng)對接第三方開放平臺等。 低碼平臺功能越是豐繁復(fù)雜,越是需要程序員參與開發(fā)對接,深度配合。
程序員的核心競爭力是什么?
復(fù)盤能力
復(fù)盤能力要求我們在工作完成一段落后,對前期工作的代碼和bug進(jìn)行回顧分析,發(fā)現(xiàn)閃光點(diǎn)和不足。
具體而言,如何實(shí)現(xiàn)代碼復(fù)用、局部重構(gòu),改善既有的代碼;如何避免出現(xiàn)重復(fù)的、相似的bug?
復(fù)盤能力能夠幫助程序員在日常的開發(fā)工作中,一點(diǎn)一滴的成長。
系統(tǒng)思維能力
系統(tǒng)性思維要求我們在編程實(shí)踐中要有方法論,要善于抽象,從整體上去思考問題。
舉個(gè)例子,當(dāng)一個(gè)項(xiàng)目趨于穩(wěn)定之后,系統(tǒng)架構(gòu)和編程范式基本不變了,開發(fā)具體功能的代碼結(jié)構(gòu)就會(huì)變得很相似。那如何來提升編程效率呢?
寫個(gè)代碼生成器或許就是一個(gè)不錯(cuò)的思路!
學(xué)習(xí)新知識的能力
海量的信息在互聯(lián)網(wǎng)上不分日夜地進(jìn)行創(chuàng)造、分發(fā),每個(gè)人都能自由的獲取信息。如何篩選信息,如何辨識信息,是現(xiàn)階段信息化最大的挑戰(zhàn)。
作為信息化的建設(shè)者,程序員的自學(xué)能力,主動(dòng)探索未知領(lǐng)域的能力,是非常核心的能力。這一點(diǎn)基本算業(yè)界共識了。
解決問題的能力
解決問題的穩(wěn)準(zhǔn)狠是衡量一個(gè)程序員是否優(yōu)秀的重要因素之一,也是資深技術(shù)人員真正的價(jià)值所在。
程序員如何與低代碼相處?
低代碼要解決的痛點(diǎn)是,在低代碼平臺提供核心引擎和業(yè)務(wù)組件的基礎(chǔ)上,快速搭建一套具備基礎(chǔ)的業(yè)務(wù)功能,滿足常規(guī)需求和日常使用的應(yīng)用。
對業(yè)務(wù)人員而言,它確實(shí)滿足了80%高頻重復(fù)的基礎(chǔ)需求,但仍有20%定制功能、復(fù)雜交互、特殊場景等個(gè)性化需求,無法通過可視化操作或者通用引擎來解決,必須要程序員介入開發(fā)。
另一方面,持續(xù)地進(jìn)行迭代更新是一款軟件保持生命力的基本要素。而這往往會(huì)造成原本屬于二八原則里80%基礎(chǔ)需求變成20%的個(gè)性化需求。越是復(fù)雜的功能迭代,越是離不開程序員。
無代碼或許會(huì)到來,但去程序員不會(huì)發(fā)生。然而這并不意味著對程序員毫無影響。恰恰相反,當(dāng)一個(gè)軟件工程80%的功能,都可以通過簡單的代碼邏輯,甚至不需要代碼就能實(shí)現(xiàn)。
如果不具備核心競爭力,那程序員還是程序員嗎?
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。