抽象可扩展性
什么是抽象可扩展性?
抽象可扩展性是系统整体能力的扩展,允许编程组件在新的开发环境中用作构建块。它增加了开发人员可以执行的重要操作的数量,而无需重新构建它们。”
在谈论程序的可扩展性或网络,对话通常集中在计算可扩展性上,或者该协议处理高吞吐量 或复杂交易。然而,还有另一类可扩展性虽然不太可量化,但同样重要:抽象可扩展性。
抽象可扩展性的核心是指开发人员通过引用和重用以前的应用程序来构建应用程序的能力。其他开发人员的工作。简而言之,抽象可扩展性就是不强迫开发人员“重新发明轮子”。
在当今的软件中,抽象被体验为一个由库、工具、操作系统、编译器、解释器和许多其他组件组成的分层生态系统——每个组件都抽象了底层系统。
开发者通过分组从抽象中受益将现有程序组合在一起,使它们能够作为更复杂应用程序的构建块。开发人员不仅不必自己编写这些抽象,甚至不一定需要了解其内部工作原理。他们可以放心地利用特定的抽象,因为他们知道成千上万的其他开发人员已经成功地使用了它们。
无需编写甚至完全理解它们的负担即可组装现有的程序片段,从而使开发人员能够更快地构建有了他们个人可能不具备的知识,就更容易了。这为他们的应用程序中更复杂和定制的部分保留了时间。它还可以编写其他方式无法实现的软件。开发人员可以利用更多现有抽象的系统就是具有更多抽象可扩展性的系统。
在传统软件环境 (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 防错系统的开发,该系统基于无许可裁判锦标赛技术,编写了智能合约等链上组件和验证器节点等链下组件。