您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

01 抖音海外服務器圖靈(低代碼究竟是什么?)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-31 10:19:03【】6人已围观

简介低代碼究竟是什么?簡介: 什么是低代碼?我們為什么需要低代碼?低代碼會讓程序員失業嗎?本文總結了低代碼領域的基本概念、核心價值與行業現狀,帶你全面了解低代碼。什么是低代碼“Low-Code”

低代碼究竟是什么?

簡介: 什么是低代碼?我們為什么需要低代碼?低代碼會讓程序員失業嗎?本文總結了低代碼領域的基本概念、核心價值與行業現狀,帶你全面了解低代碼。

什么是低代碼

“Low-Code”是什么?如果你是第一次聽說,沒準也會跟我當年從老板口中聽到這個詞后的內心戲一樣:啥?“Low-Code”?“Code”是指代碼我知道,但這個“Low”字是啥意思?不會是老板發現我最近趕工寫的代碼很丑很“Low”吧... 想多了,老板怎么可能親自review代碼呢。那難道是指,“Low-level programming”里的“Low”?老板終于發現讓我等編程奇才整天堆Java業務代碼太浪費,要派我去閉關寫一個高性能C語言網絡庫... 顯然也不是,老板哪能有這技術情懷呢。那到底是什么意思?作為一名搜商比情商還高的程序員,能問Google的絕不會問老板。于是我一頓操作后,不假思索地點開了第一條搜索結果:Low-買粉絲de development platform。

Wikipedia定義

 

從Wiki的這段定義中,我們可以提煉出幾個關鍵信息:

• 低代碼開發平臺(LCDP)本身也是一種軟件,它為開發者提供了一個創建應用軟件的開發環境。看到“開發環境”幾個字是不是很親切?對于程序員而言,低代碼開發平臺的性質與IDEA、VS等代碼IDE(集成開發環境)幾乎一樣,都是服務于開發者的生產力工具。

• 與傳統代碼IDE不同的是,低代碼開發平臺提供的是更高維和易用的可視化IDE。大多數情況下,開發者并不需要使用傳統的手寫代碼方式進行編程,而是可以通過圖形化拖拽、參數配置等更高效的方式完成開發工作。

Forrester定義

順著Wiki的描述還能發現,原來“Low-Code”一詞早在2014年就由Forrester提出了,它對低代碼開發平臺的始祖級定義是這樣的:

請點擊輸入圖片描述

相比Wiki的版本,這個定義更偏向于闡明低代碼所帶來的核心價值:

• 低代碼開發平臺能夠實現業務應用的快速交付。也就是說,不只是像傳統開發平臺一樣“能”開發應用而已,低代碼開發平臺的重點是開發應用更“快”。更重要的是,這個快的程度是顛覆性的:根據Forrester在2016年的調研,大部分公司反饋低代碼平臺幫助他們把開發效率提升了5-10倍。而且我們有理由相信,隨著低代碼技術、產品和行業的不斷成熟,這個提升倍數還能繼續上漲。

• 低代碼開發平臺能夠降低業務應用的開發成本。一方面,低代碼開發在軟件全生命周期流程上的投入都要更低(代碼編寫更少、環境設置和部署成本也更簡單);另一方面,低代碼開發還顯著降低了開發人員的使用門檻,非專業開發者經過簡單的IT基礎培訓就能快速上崗,既能充分調動和利用企業現有的各方面人力資源,也能大幅降低對昂貴專業開發者資源的依賴。

低代碼核心能力

基于上述的定義和分析,不難總結出如下這3條低代碼開發平臺的核心能力:

請點擊輸入圖片描述

• 全棧可視化編程:可視化包含兩層含義,一個是編輯時支持的點選、拖拽和配置操作,另一個是編輯完成后所及即所得(WYSIWYG)的預覽效果。傳統代碼IDE也支持部分可視化能力(如早年Visual Studio的MFC/WPF),但低代碼更強調的是全棧、端到端的可視化編程,覆蓋一個完整應用開發所涉及的各個技術層面(界面/數據/邏輯)。

• 全生命周期管理:作為一站式的應用開發平臺,低代碼支持應用的完整生命周期管理,即從設計階段開始(有些平臺還支持更前置的項目與需求管理),歷經開發、構建、測試和部署,一直到上線后的各種運維(e.g. 監控報警、應用上下線)和運營(e.g. 數據報表、用戶反饋)。

• 低代碼擴展能力:使用低代碼開發時,大部分情況下仍離不開代碼,因此平臺必須能支持在必要時通過少量的代碼對應用各層次進行靈活擴展,比如添加自定義組件、修改主題CSS樣式、定制邏輯流動作等。一些可能的需求場景包括:UI樣式定制、遺留代碼復用、專用的加密算法、非標系統集成。

不只是少寫代碼

回到最初那個直擊心靈的小白問題:Low-Code中的“Low”,到底是啥意思?答案已經顯而易見:既不是指抽象程度很低(相反,低代碼開發方式的抽象程度要比傳統編程語言高一個level),也不是指代碼很low(也相反,低代碼所生成的代碼一般都經過精心維護和反復測試,整體質量強于大部分手寫代碼),而是單純的“少寫代碼” —— 只在少數需要的情況下才手寫代碼,其他大部分時候都能用可視化等非代碼方式解決。

再往深一點兒看,低代碼不只是少寫代碼而已:代碼寫得少,bug也就越少(正所謂“少做少錯”),因此開發環節的兩大支柱性工作“趕需求”和“修bug”就都少了;要測的代碼少了,那么測試用例也可以少寫不少;除了開發階段以外,平臺還覆蓋了后續的應用構建、部署和管理,因此運維操作也更少了(Low-Code → Low-Ops)。

請點擊輸入圖片描述

平臺的職責與挑戰

上面說的是低代碼給開發者提供的能力與吸引力,那么作為服務的提供方與應用的承載者,低代碼開發平臺自身應該承擔怎樣的職責,其中又會遇到多大的挑戰?是否就一定要如阿里云所主張的那樣,“把復雜留給自己,把簡單留給別人”?雖然這句話聽起來很深明大義,但不知道大家有沒有想過,為什么我們一定要抱著復雜不放,平白無故給自己找事?就不能直接干掉復雜,也給咱阿里云自己的員工留點簡單嗎?是工作太容易就體現不出來KPI價值了,還是家里的飯菜不如公司的夜宵香?

根據《人月神話》作者Fred Brooks的劃分,軟件開發的復雜度可以劃分為本質復雜度(Essential 買粉絲plexity )和偶然復雜度(Accidental 買粉絲plexity)。前者是解決問題時固有的最小復雜度,跟你用什么樣的工具、經驗是否豐富、架構好不好等都無關,而后者就是除此之外在實際開發過程中引入的復雜度。通常來說,本質復雜度與業務要解決的特定問題域強相關,因此這里我把它稱為更好理解的“業務復雜度”;這部分復雜度不是任何開發方法或工具能解決的,包括低代碼。而偶然復雜度一般與開發階段的技術細節強相關,因此我也相應把它稱為“技術復雜度”;而這一部分復雜度,恰好就是低代碼所擅長且適合解決的。

為開發者盡可能屏蔽底層技術細節、減少不必要的技術復雜度,并支撐其更好地應對業務復雜度(滿足靈活通用的業務場景需求),這是身為一個低代碼開發平臺所應該盡到的核心職責。

請點擊輸入圖片描述

在盡到上述職責的同時,低代碼開發平臺作為一個面向開發者的產品,還需要致力于為開發者提供簡單直觀的極致開發體驗。這背后除了巨大的工作量,還得能在“強大”和“易用”這兩個很難兩全其美的矛盾點之間,努力找到一個符合自己產品定位與目標客戶需求的平衡點 —— 這也許是設計一個通用低代碼開發平臺所面臨的最大挑戰。

三、低代碼相關概念對比

純代碼(Pro-Code / Custom-Code)

“純代碼”可能算是我杜撰的一個詞,更常見的說法是專業代碼(Pro-Code)或定制代碼(Custom-Code);但意思都一樣,就是指傳統的以代碼為中心(Code-Centric)的開發模式。之所以我選擇用“純代碼”,是因為如果用“專業代碼”會顯得似乎低代碼就不專業了一樣,而用“定制代碼”又容易讓人誤解成低代碼無法支持定制的自定義代碼。

當然,更準確的稱謂我認為是“高代碼”(與低代碼恰好對應,只是名字太難聽,被我嫌棄了...),因為即便是使用傳統的代碼IDE,有些開發工作也支持(甚至更適合)以非代碼方式完成,比如:iOS端開發時使用的SwiftUI界面設計器、服務端開發數據庫應用時使用的PowerDesigner建模工具。不過這部分可視化工作在傳統開發模式下只是起輔助作用,最后通常也是生成開發者可直接修改的代碼;開發者仍然是以代碼為中心來開展主要工作。

低代碼與純代碼之間的關系,其實跟視頻和文章之間很像:

低代碼就像是現代的“視頻”,大部分內容都由直觀易理解、表達能力強的圖片組成,因此更容易被大眾所接受。但與此同時,視頻也不是死板得只能有圖片,完全可以添加少量文字(如字幕、標注)來彌補圖片表達不夠精確的問題。BTW,關于“圖”和“文字”之間的辯證關系,可以進一步參考《架構制圖:工具與方法論》[1]這篇文章中的相關描述。

純代碼則更像是傳統的“文章”,雖然很久以來都一直是信息傳播的唯一媒介,但自從視頻技術誕生以及相應軟硬件基礎設施的普及以來,便逐漸開始被搶走了風頭。如今,視頻已成為大部分人獲取信息的主要渠道(從電視電影到B站抖音),而經常讀書讀文章的人卻越來越少。但不可否認的是,文章依然有它存在的意義和受眾(不然我也不會費這勁敲這么多字了),即使“市場份額”一直在被擠壓,但永遠會有它立足的空間。

請點擊輸入圖片描述

如果按上面這種類比關系推導,低代碼未來也會遵循與視頻類似的發展軌跡,超越純代碼成為主流開發模式。Gartner的預測也表達了相同的觀點:到2024年,所有應用程序開發活動當中的65%將通過低代碼的方式完成,同時75%的大型企業將使用至少四種低代碼開發工具進行應用開發。

但同樣地,就像是視頻永遠無法取代文章一樣,低代碼也永遠無法徹底取代純代碼開發方式。未來低代碼和純代碼方式將以互補的形態長期共存,各自在其所適合的業務場景中發光發熱。在后面的“低代碼業務場景”章節,會詳細列出哪些場景在現階段更適合用低代碼模式開發。

零代碼(Zero-Code / No-Code)

從分類的完備性角度來看,有“純代碼”自然也應該有完全相反的“零代碼”(也稱為“無代碼”)。零代碼就是完全不需要寫代碼的應用開發平臺,但這并不代表零代碼就比低代碼更高級和先進,它只是做了一個更極端的選擇而已:徹底擁抱簡單的圖形可視化,完全消滅復雜的文本代碼。選擇背后的原因是,零代碼開發平臺期望能盡可能降低應用開發門檻,讓人人都能成為開發者(注意:開發 ≠ 寫代碼),包括完全不懂代碼的業務分析師、用戶運營,甚至是產品經理(不懂裝懂可不算懂)。

即便是專業開發者,在技術分工越來越精細的趨勢下(前端/后端/算法/SRE/數據分析..),也很難招到一個能獨立開發和維護整套復雜應用的全棧工程師。但零代碼可以改變這一切:無論是Java和JavaScript傻傻分不清楚的技術小白,還是精通深度學習但沒時間學習Web開發的算法大牛,都可以通過零代碼實現自己的技術夢或全棧夢。“改變世界的idea已有,就差一個程序員了”,這句玩笑話或許真的可以成真;哦不,甚至都用不著程序員,有idea的人自己就能上。

請點擊輸入圖片描述

當然,所有選擇都要付出代價,零代碼也不例外。完全拋棄代碼的代價,就是平臺能力與靈活性受限:

• 一方面,可視化編輯器的表達能力遠不及圖靈完備的

很赞哦!(6)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:山西忻州定襄县

工作室:小组

Email:[email protected]