React:搞了半天,我才是低代碼的最佳形態(tài)
大家好,我卡頌。
你有沒有發(fā)現(xiàn),每過幾年,「低代碼」的概念就會被翻出來熱炒一番。
這也難怪,軟件行業(yè)最大的成本就是人力成本(程序員的工資),「低代碼」號稱能夠:
- 用一個(gè)外包替代幾個(gè)程序員。
- 用產(chǎn)品、設(shè)計(jì)、財(cái)務(wù)人員替代程序員。
- 用xxxx替代程序員。
一個(gè)只有程序員受傷,還能降本增效的世界,資本怎能不愛。
概念翻來覆去炒了這么多年,為啥市面上還沒出現(xiàn)顛覆程序員工作方式的低代碼平臺呢?
今天,我們來聊聊這個(gè)話題。
低代碼,我們聊的是一回事么?
程序員和資本眼中的「低代碼」是一回事兒么?
對于程序員來說,「低代碼」的概念更接近于DSL?。比如,JSX?是對DOM的抽象。
如果將「直接書寫操作DOM的方法」看作代碼,那么「使用JSX這套DSL編寫的React代碼」就是低代碼。
因?yàn)榍罢呤情_發(fā)者面向宿主環(huán)境(瀏覽器)直接命令式的書寫代碼。
后者是開發(fā)者聲明式地操作狀態(tài),React這個(gè)「低代碼平臺」再將「狀態(tài)變化」轉(zhuǎn)化為「操作DOM的方法」。
而對于資本來說,「低代碼」的概念更接近于「珍妮紡紗機(jī)」,有了他,就能革了紡紗工(程序員)的命。
為什么前者這種開發(fā)模式能夠在業(yè)界大規(guī)模普及,而后者不能呢?
這就要提到他們的本質(zhì)區(qū)別 —— 是工具還是平臺?
工具 vs 平臺
工具與平臺的目的都是為了「降本增效」,他們的區(qū)別是什么?
一個(gè)應(yīng)用從開發(fā)到上線平穩(wěn)運(yùn)營,涉及到很多工種的不同工作。
工具降本增效的方式是 —— 幫助「從事這些工作的工種降本增效」,比如:
- 前端、后端框架提升業(yè)務(wù)開發(fā)效率。
- Git用于多人協(xié)作時(shí)的代碼管理。
- Github Action用于完善CI、CD流程。
而平臺降本增效的方式是 —— 將工作流程、工作內(nèi)容抽象成模塊,這樣即使是外行,只要組裝不同的模塊,就能拼湊出一個(gè)應(yīng)用。
也就是說,前者降本增效是通過「提高專業(yè)人士的效率」,而后者是通過「以可視化的方式,降低工作門檻,讓非專業(yè)人士替代專業(yè)人士」。
但這里有個(gè)問題 —— 雖然平臺屏蔽了軟件開發(fā)的復(fù)雜度,但軟件開發(fā)會遇到的問題,他也沒法避免。比如:
如何應(yīng)對定制化需求?
遇到「依靠模塊組裝無法滿足的定制化需求」,低代碼平臺怎么辦呢?
業(yè)界常見的解決方案是 —— 為低代碼平臺保留「編寫代碼的能力」。
畢竟,低代碼平臺的產(chǎn)物也是代碼,只要產(chǎn)物代碼結(jié)構(gòu)清晰,程序員還是能在此基礎(chǔ)上開發(fā)定制化需求的。
但問題是,程序員的介入,這就將低代碼平臺推崇的如下映射條件:
從「非專業(yè)人員組裝的模塊」到「應(yīng)用」
變成了:
從「非專業(yè)人員組裝的模塊」到「程序員的補(bǔ)丁代碼」再到「應(yīng)用」
那這個(gè)應(yīng)用的后續(xù)迭代,是不是也得程序員介入?這成本不又回來了么。
如何協(xié)作開發(fā)
現(xiàn)在我們假設(shè),有個(gè)巨牛逼的低代碼平臺,非常好用,極大提升了開發(fā)效率。
老板一看,員工閑下來了,這不比股市跌了還讓人難受。
于是,馬上拍腦袋安排新的需求開發(fā)。開發(fā)人員不夠用了,怎么辦?招人。
這些人如何在低代碼平臺協(xié)作開發(fā)呢?難道再把Git的概念引入平臺?
如何測試
是個(gè)應(yīng)用就會有bug。低代碼平臺再完善,能夠解決模塊自身的單測,但E2E測試誰來做?財(cái)務(wù)么?
思路要打開
上述林林總總的問題,隨著項(xiàng)目復(fù)雜度上升、維護(hù)時(shí)間變長后都會出現(xiàn)。
那該如何解決呢?在這里插個(gè)眼,有緣人知道答案請告訴我。
如果解決不了,那我們換個(gè)思路,如何才能不讓項(xiàng)目復(fù)雜度上升?不讓項(xiàng)目維護(hù)時(shí)間變長?
那就限制低代碼平臺的應(yīng)用場景,比如:
- 開發(fā)營銷活動(dòng)頁的低代碼平臺。
- 開發(fā)企業(yè)官網(wǎng)的低代碼平臺。
讓我們思路再打開下,平臺開發(fā)出來是為了賣錢的,只要用戶在意識到上述問題前把錢收了,不就行了?
搞互聯(lián)網(wǎng)的不好忽悠,那我們可以助力傳統(tǒng)企業(yè)數(shù)字化轉(zhuǎn)型嘛。20分鐘就給你搭出個(gè)官網(wǎng),這轉(zhuǎn)型速度,未來可期啊。
請,轉(zhuǎn)賬付費(fèi)。
理想的低代碼平臺
平臺型低代碼很難跑通,但是工具型低代碼卻有很好的前景。以React舉例。
在使用React?前,前端開發(fā)者直接操作DOM?。有了React后,「業(yè)務(wù)的前端邏輯」被封裝到名為「組件」的模塊中。
接下來,React?提出了Server Components,組件可以在服務(wù)端運(yùn)行。
這一步將「業(yè)務(wù)的服務(wù)端邏輯」也封裝到「組件」中。
同時(shí),Hooks在前端可以與「視圖狀態(tài)」掛鉤,在后端可以與「微服務(wù)」掛鉤。
這種基于「組件」、「Hooks」的「低代碼工具」,你喜歡么?