抽象可擴展性
什麼是抽象可擴展性?
抽象可擴展性是系統整體能力的擴展,允許程式組件在新的開發環境中用作構建塊。它增加了開發人員可以執行的重要操作的數量,而無需重新建構它們。」
在談論程式的可擴展性或網絡,對話通常集中在計算可擴展性上,或者該協議處理高吞吐量 或複雜交易。然而,還有另一類可擴展性雖然不太可量化,但同樣重要:抽象可擴展性。
抽象可擴展性的核心是指開發人員透過引用和重用先前的應用程式來建立應用程式的能力。其他開發人員的工作。簡而言之,抽象可擴展性就是不強迫開發人員「重新發明輪子」。
在當今的軟體中,抽像被體驗為一個由函式庫、工具、作業系統、編譯器、解釋器和許多其他元件組成的分層生態系統——每個元件都抽象化了底層系統。
開發者透過分組從抽象中受益將現有程式組合在一起,使它們能夠作為更複雜應用程式的構建塊。開發人員不僅不必自己編寫這些抽象,甚至不一定需要了解其內部運作方式。他們可以放心地利用特定的抽象,因為他們知道成千上萬的其他開發人員已經成功地使用了它們。
無需編寫甚至完全理解它們的負擔即可組裝現有的程式片段,從而使開發人員能夠更快地建立有了他們個人可能不具備的知識,就更容易了。這為他們的應用程式中更複雜和自訂的部分保留了時間。它還可以編寫其他方式無法實現的軟體。開發人員可以利用更多現有抽象的系統就是具有更多抽象可擴展性的系統。
在傳統軟體環境 (web2) 中,抽像是豐富的。數以千計的流行工具和庫中充滿了開發人員可以瀏覽和選擇的常用程式。簡而言之,web2 極大地受益於數十年開發人員活動所帶來的抽象可擴展性。
Web3 中的抽象可擴展性
Web3 並非完全沒有抽象;而是完全沒有抽象。像是 Solidity 和 Vyper 編譯器,以及函式庫、工具、SDK 和其他開發人員資源都是範例。但作為一個相對新生的生態系統,web3 缺乏在更成熟的開發環境中發現的大量抽象。
當今的Web3 開發人員仍然主要在定制執行環境中進行測試和迭代,而沒有得到完善的抽象的好處。因此,他們經常「從頭開始」構建,這一過程總體上導致當今軟體開發的可擴展性較差。當缺乏抽象可擴展性時,Web3 軟體受到更多限制,安全性更低,並且編寫和執行速度更慢。
擴展抽象
抽象擴展是透過利用成熟的工具和程式碼庫來實現的,使開發人員能夠利用數十年的先前工作成果。結果是應用程式的容量增加,變得更加複雜和富有表現力。此外,抽象可擴展性提高了效能和安全性,使開發人員可以從經過充分實戰測試和完善的程序中進行選擇。
抽象可擴展性通常不會被考慮到,直到開發人員面臨它的缺失。 Web3 仍處於早期階段,今天的開發人員在沒有充分利用抽象的情況下繼續開發。隨著web3 生態系統的發展和開發人員貢獻越來越多的抽象,我們可以預見web3 應用程式的複雜性、效率、安全性和數量將激增。
作者:
< a href="https://twitter.com/GCdePaula_" rel="noopener noreferrer" target="_blank">Gabriel Coutinho de Paula 是 Cartesi 生態系統,建構其核心技術和基礎設施。他於 2020 年兼職加入該項目,並在完成程式語言碩士學位論文答辯後於 2021 年全職加入該計畫。他領導了 Cartesi 防錯系統的開發,該系統基於無許可裁判錦標賽技術,編寫了智能合約等鏈上組件和驗證器節點等鏈下組件。