低代碼會使應(yīng)用程序過于復(fù)雜嗎?
譯文低代碼繼續(xù)受到大量關(guān)注和爭論。許多軟件開發(fā)人員仍然想知道使用低代碼是否會使應(yīng)用程序開發(fā)過程更好,或者它是否會干擾開發(fā)過程并導(dǎo)致劣質(zhì)應(yīng)用程序。其他人則擔(dān)心低代碼的安全隱患。
當(dāng)然,如果使用低代碼的必然結(jié)果是更高的應(yīng)用程序復(fù)雜性,那么低代碼可能會導(dǎo)致安全問題的難度增加。但真的是這樣嗎?我最近寫了很多關(guān)于應(yīng)用程序復(fù)雜性的文章,還有很多關(guān)于低代碼的文章。但是應(yīng)用程序復(fù)雜性與使用低代碼之間的相關(guān)性是一個有趣的觀點(diǎn)。
復(fù)雜性與方法無關(guān)
需要明確的是,低代碼的必然結(jié)果不一定是復(fù)雜性。就像傳統(tǒng)的應(yīng)用程序開發(fā)一樣,復(fù)雜性可以而且經(jīng)常會進(jìn)入產(chǎn)品代碼庫的生命周期。雖然不是不可避免的,但它很常見。無論應(yīng)用程序是如何構(gòu)建的,你都可以采取許多步驟來降低應(yīng)用程序的復(fù)雜性,從而提高性能、可擴(kuò)展性、可用性和創(chuàng)新速度。
是的,與所有應(yīng)用程序一樣,低代碼應(yīng)用程序可能會變得復(fù)雜,并且需要使用簡化技術(shù)來降低復(fù)雜性。但這些問題與使用低代碼無關(guān)。它們在常規(guī)產(chǎn)品開發(fā)過程中同樣重要。
未知并不復(fù)雜
低代碼確實(shí)增加了應(yīng)用程序中不是由開發(fā)團(tuán)隊(duì)直接編寫的代碼量。還有更多代碼是由低代碼平臺自動生成的,或者包含在你的應(yīng)用程序運(yùn)行所需的庫中,但不是你的開發(fā)人員的產(chǎn)品。因此,當(dāng)你使用低代碼技術(shù)時,你的應(yīng)用程序中通常會有更多“未知”代碼。
但未知與復(fù)雜性不同。未知代碼(由其他人提供并添加到你的應(yīng)用程序的代碼)本身不會增加應(yīng)用程序的復(fù)雜性。
事實(shí)上,情況可能正好相反。
低代碼降低復(fù)雜性
使用低代碼開發(fā)技術(shù)可以減少過度復(fù)雜性滲入應(yīng)用程序的可能性。通過簡化應(yīng)用程序開發(fā)人員的認(rèn)知負(fù)荷和時間壓力,低代碼平臺允許開發(fā)人員專注于更大的圖景、應(yīng)用程序業(yè)務(wù)邏輯,而較少關(guān)注細(xì)節(jié)。
細(xì)枝末節(jié)會發(fā)生什么?它們由低代碼環(huán)境處理。此外,低代碼環(huán)境將使用標(biāo)準(zhǔn)化的、經(jīng)過驗(yàn)證的技術(shù)來完成這些低級任務(wù)。自動生成的代碼和庫代碼早在你的應(yīng)用程序團(tuán)隊(duì)使用它之前就已開發(fā)、測試和改進(jìn)。你使用低代碼構(gòu)建應(yīng)用程序的次數(shù)越多,在你的應(yīng)用程序中使用的這種預(yù)先測試的標(biāo)準(zhǔn)化代碼的數(shù)量就越多。使用低代碼工具來構(gòu)建你的應(yīng)用程序會導(dǎo)致更多地使用標(biāo)準(zhǔn)化編碼技術(shù)、行業(yè)最佳實(shí)踐,并最終實(shí)現(xiàn)更多的軟件重用。
但是復(fù)雜性呢?增加標(biāo)準(zhǔn)化編碼的使用和利用軟件重用是用于降低應(yīng)用程序復(fù)雜性的常用策略。標(biāo)準(zhǔn)化編碼減少了理解應(yīng)用程序如何工作所涉及的認(rèn)知負(fù)擔(dān),而代碼重用往往會減少復(fù)雜應(yīng)用程序中可能出現(xiàn)故障的移動部件的數(shù)量。因此,使用低代碼工具創(chuàng)建的應(yīng)用程序?qū)⒈仁褂脗鹘y(tǒng)編程技術(shù)開發(fā)的功能等效應(yīng)用程序更簡單。
標(biāo)準(zhǔn)化和重用如何影響復(fù)雜性?
當(dāng)我們考慮應(yīng)用程序的復(fù)雜性時,我們通常會考慮應(yīng)用程序的兩個不同方面:組成應(yīng)用程序的組件的大小和數(shù)量,以及應(yīng)用程序軟件的更改率。
增加對可重用代碼的使用會減少應(yīng)用程序中組件的大小和數(shù)量,而增加對標(biāo)準(zhǔn)化編碼技術(shù)的使用往往會降低變化率——至少對于應(yīng)用標(biāo)準(zhǔn)化編碼的模塊或組件而言。
任何給定應(yīng)用程序的實(shí)際情況都會更加復(fù)雜,但基本原理仍然適用。增加標(biāo)準(zhǔn)化編碼技術(shù)的使用和增加可重用軟件組件的使用往往會降低最終應(yīng)用程序的復(fù)雜性。
這并不新鮮
這種分析對于低代碼來說并不是新的或獨(dú)特的。幾十年來,我們一直使用軟件抽象來“隱藏”開發(fā)人員的代碼復(fù)雜性。每當(dāng)我們使用高級語言(例如 C、Java、Ruby 或 Go)時,我們都會抽象出為執(zhí)行所需操作而創(chuàng)建和執(zhí)行的實(shí)際代碼。我們將開發(fā)重點(diǎn)放在“更高級別的構(gòu)造”上,允許編譯器或解釋器處理創(chuàng)建和運(yùn)行機(jī)器代碼的細(xì)節(jié)。
它并不止于編譯器。當(dāng)我們使用更高級別的軟件包、環(huán)境和框架時,我們也會抽象出復(fù)雜性,以便我們可以專注于更高級別的功能。因此,使用 Ruby on Rails、Spring、Hibernate、Gin、jQuery、Bootstrap 甚至 HTML/CSS,我們正在抽象出復(fù)雜性,以便在更高層次上工作。結(jié)果是更強(qiáng)大的應(yīng)用程序和更高的可靠性,更少的開發(fā)工作和更低的支持成本。這與當(dāng)今低代碼社區(qū)中討論的論點(diǎn)沒有什么不同。
軟件開發(fā)的世界是一個復(fù)雜的世界,每天都有新的挑戰(zhàn)出現(xiàn)。軟件開發(fā)人員經(jīng)常使用工具、資源、環(huán)境和技術(shù)來簡化軟件開發(fā)過程。最近,低代碼技術(shù)得到了改進(jìn),低代碼平臺已成為改進(jìn)軟件開發(fā)過程的有用工具,而不會增加應(yīng)用程序的過度復(fù)雜性。
原文標(biāo)題:??Does low code make applications overly complex????