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