抽象可伸縮性
什麼是抽象可伸縮性?
抽象可伸縮性是系統的整體能力的擴展,該系統允許在新開發環境中將編程組件用作構件。它增加了開發人員可以執行的重要操作的數量,而無需重建它們。”
在談論程序或網絡的可伸縮性時,對話通常以計算可擴展性為中心,或該協議處理高通量或複雜交易的能力。但是,還有另一種類別的可伸縮性不那麼可量化,但同樣至關重要:抽象可擴展性。
從本質上講,抽象可伸縮性是指開發人員通過引用和重複其他開發人員的先前工作來構建應用程序的能力。簡而言之,抽象的可伸縮性是不強迫開發人員“重新發明車輪”。
在當今的軟件中,抽像是庫,工具,操作系統,編譯器,口譯人員和許多其他組件的分層生態系統,每個組件都抽象了基礎系統。
開發人員通過將現有程序分組在一起,從抽像中受益,從而使他們可以作為更複雜應用程序的構建基礎。不僅開發人員不必自己編寫這些抽象,而且甚至不一定需要理解其內部工作。他們可以充滿信心地知道成千上萬的其他開發人員已經成功使用了它們。
在沒有寫作負擔甚至完全理解它們的情況下組裝現有程序的能力,可以使開發人員使用他們可能不單獨擁有的知識更快,更容易地建立。這保留了他們的應用程序中更為複雜和定制的部分。它還啟用了否則不可能的寫作軟件。開發人員可以利用更多已經存在的抽象的系統是具有更抽象可擴展性的系統。
在傳統的軟件環境(Web2)中,抽像很多。成千上萬的流行工具和庫中充滿了開發人員可以瀏覽和選擇的常用程序。簡而言之,Web2受益於數十年開發人員活動所產生的抽象可伸縮性。
Web3中的抽象可伸縮性
Web3並非完全沒有抽象。固體和VYPER編譯器以及庫,工具,SDK和其他開發人員資源之類的都是示例。但是,作為一個相對新生的生態系統,Web3缺乏在更既定的開發環境中發現的大量抽象。
當今的Web3開發人員在定制執行環境中仍在很大程度上進行測試和迭代,而沒有建立良好的抽象。結果,它們經常建立“從頭開始”,這一過程總體上會導致當今較低的軟件開發。 Web3軟件在缺少抽象可伸縮性時更加有限,更安全,並且較慢編寫和執行。
縮放抽象
抽象縮放是通過利用成熟的工具和代碼庫來進行的,從而使開發人員能夠利用數十年的先前工作。結果是使應用更加複雜和表現力的能力提高。此外,抽象可伸縮性可提高性能和安全性,使開發人員可以從經過足夠戰鬥測試和完善的程序中進行選擇。
直到開發人員面對其缺席之前,抽象的可伸縮性通常不會考慮。 Web3仍處於早期階段,今天的開發人員正在進行中,而沒有抽象的全部好處。隨著Web3生態系統的成長和開發人員的貢獻越來越多,我們可以預料到復雜性,效率,安全性和純粹的Web3應用程序的湧入。
作者:
Gabriel Coutinho de Paula是Cartesi生態系統的貢獻者,建立了其核心技術和基礎設施。他於2020年兼職,並在捍衛了他的碩士論文中的編程語言之後,在2021年加入了該項目。他根據無許可的指南錦標賽技術領導Cartesi防斷層系統的開發,撰寫鏈接組件(例如智能合約)和諸如驗證器節點(例如驗證器節點)等鏈零件。