為什么很多程序員討厭低代碼?(為什么很多程序員討厭低代碼的人)
為什么很多程序員討厭低代碼?
“為什么很多程序員討厭低代碼?”。古有云“實(shí)踐出真知”,大多數(shù)人在質(zhì)疑和討厭背后都有一些原因。但在我看來,更有可能是主觀或無意識的偏見。在這里,我列出了一些關(guān)于低代碼的常見問題和我個(gè)人的看法,希望能幫助你看到一個(gè)更全面和客觀的低代碼。
質(zhì)疑1:低代碼平臺不好用
部分人嘗試過一些所謂的低代碼開發(fā)平臺,要么能力很弱,要么體驗(yàn)太差,只能開發(fā)一些玩具應(yīng)用。
作為一個(gè)深入體驗(yàn)國內(nèi)外許多低代碼產(chǎn)品的用戶,我的觀點(diǎn)是:不能以偏概全。低代碼市場正處于國內(nèi)爆發(fā)的早期階段,所以許多軟件開發(fā)平臺也在蹭低代碼的熱點(diǎn);但它們并不代表低代碼當(dāng)前的行業(yè)水平和發(fā)展方向。市場上真正成熟的 企業(yè)級低代碼開發(fā)平臺 完全有能力以高效的開發(fā)方式滿足大多數(shù)復(fù)雜場景的功能需求,以及企業(yè)級應(yīng)用程序所需的安全、性能、可伸縮性等非功能需求,在國外市場得到充分驗(yàn)證(不然也不會這么被寄予厚望)。
當(dāng)然,國內(nèi)市場仍處于混戰(zhàn)階段,遇到真正的龍的概率很低,但遇到金魚鯉魚甚至假木魚是不可避免的。我相信,隨著時(shí)間的推移,真正強(qiáng)大且聲譽(yù)好的低代碼產(chǎn)品是可以脫穎而出的,并為大家展示低代碼產(chǎn)品真正的該有的樣子。
質(zhì)疑2:低代碼開發(fā)不可控
低代碼平臺上的各種可視化組件、邏輯動作和部署環(huán)境都是黑盒,如何內(nèi)部出問題無法排查和解決。
作為一個(gè)不知道底層原理的程序員,我更愿意相信問題只是暫時(shí)的。雖然這確實(shí)是目前使用低代碼平臺時(shí)不可避免的痛點(diǎn),但并不是低代碼技術(shù)本身的固有缺陷。
計(jì)算機(jī)領(lǐng)域有一句名言:任何問題都可以通過增加一個(gè)間接的中間層來解決。
低代碼的想法也是如此:像當(dāng)年的操作系統(tǒng)和當(dāng)前的云平臺一樣,他們都希望通過建立一個(gè)黑盒子中間層抽象來減少開發(fā)者的工作量和精神負(fù)擔(dān)。
當(dāng)然,所有額外的中間層都不是完全免費(fèi)的,低代碼也不例外。作為一個(gè)不成熟和穩(wěn)定的新中間層,低代碼必然會出現(xiàn)各種讓用戶束手無措的問題,就跟當(dāng)年的操作系統(tǒng)內(nèi)核bug、如今的云主機(jī)I/O hang一樣。
但歷史規(guī)律也告訴我們,所有偉大的技術(shù)最終都會成熟;只要低代碼領(lǐng)域健康發(fā)展,問題就會越來越少,最終會降到大多數(shù)人無法察覺的范圍內(nèi)。
過去縈繞在Windows用戶心中揮之不去“藍(lán)屏”問題,對于今天的新用戶來說早已不知是何物;低代碼開發(fā)者今天遇到的各種問題“藍(lán)瘦”問題,未來也終將會成為被遺忘的歷史(誰還沒段黑歷史呢)。
質(zhì)疑3:低代碼應(yīng)用難維護(hù)
一旦應(yīng)用程序變得復(fù)雜,各種復(fù)雜的邏輯流穿插自定義代碼,看不懂也改不動,還不如全用代碼呢。
用低代碼開發(fā),也要講究基本法。一般來說,無論是低代碼開發(fā)還是純代碼開發(fā),應(yīng)用可維護(hù)性低的根本原因往往不是開發(fā)工具,而是開發(fā)者本身沒有遵循工程規(guī)范化、命名可讀性等軟件開發(fā)的一些普適原則。或者是DRY/KISS/SOLID原則等。
一個(gè)好的低代碼平臺永遠(yuǎn)不會阻礙開發(fā)者提高應(yīng)用程序的可維護(hù)性;相反,它會盡可能地提供指導(dǎo)和幫助。例如Mendix,除了支持基本的模型分析和重構(gòu)外,(e.g. 無用模型、對象重命名、子邏輯流提取),它甚至提供了基于它的ISO/IEC25010標(biāo)準(zhǔn)應(yīng)用質(zhì)量監(jiān)測(AQM)能力。
另一方面,難以維護(hù)應(yīng)用的客觀原因之一是應(yīng)用本身過于復(fù)雜,而低代碼作為一種高度抽象和自動化的開發(fā)模式,在降低應(yīng)用復(fù)雜性方面是專業(yè)的。
總的來說,雖然低代碼不是解決所有問題的“銀彈”,但也不是帶來更多問題的炸彈:在提高應(yīng)用可維護(hù)性方面的上限,一定比傳統(tǒng)開發(fā)模式更高;但決定應(yīng)用可維護(hù)性下限的,依然還是開發(fā)者自己。