抽象可伸缩性
什么是抽象可伸缩性?
抽象可伸缩性是系统的整体能力的扩展,该系统允许在新开发环境中将编程组件用作构件。它增加了开发人员可以执行的重要操作的数量,而无需重建它们。”
在谈论程序或网络的可伸缩性时,对话通常以计算可扩展性为中心,或该协议处理高通量或复杂交易的能力。但是,还有另一种类别的可伸缩性不那么可量化,但同样至关重要:抽象可扩展性。
从本质上讲,抽象可伸缩性是指开发人员通过引用和重复其他开发人员的先前工作来构建应用程序的能力。简而言之,抽象的可伸缩性是不强迫开发人员“重新发明车轮”。
在当今的软件中,抽象是库,工具,操作系统,编译器,口译人员和许多其他组件的分层生态系统,每个组件都抽象了基础系统。
开发人员通过将现有程序分组在一起,从抽象中受益,从而使他们可以作为更复杂应用程序的构建基础。不仅开发人员不必自己编写这些抽象,而且甚至不一定需要理解其内部工作。他们可以充满信心地知道成千上万的其他开发人员已经成功使用了它们。
在没有写作负担甚至完全理解它们的情况下组装现有程序的能力,可以使开发人员使用他们可能不单独拥有的知识更快,更容易地建立。这保留了他们的应用程序中更为复杂和定制的部分。它还启用了否则不可能的写作软件。开发人员可以利用更多已经存在的抽象的系统是具有更抽象可扩展性的系统。
在传统的软件环境(Web2)中,抽象很多。成千上万的流行工具和库中充满了开发人员可以浏览和选择的常用程序。简而言之,Web2受益于数十年开发人员活动所产生的抽象可伸缩性。
Web3中的抽象可伸缩性
Web3并非完全没有抽象。固体和VYPER编译器以及库,工具,SDK和其他开发人员资源之类的都是示例。但是,作为一个相对新生的生态系统,Web3缺乏在更既定的开发环境中发现的大量抽象。
当今的Web3开发人员在定制执行环境中仍在很大程度上进行测试和迭代,而没有建立良好的抽象。结果,它们经常建立“从头开始”,这一过程总体上会导致当今较低的软件开发。 Web3软件在缺少抽象可伸缩性时更加有限,更安全,并且较慢编写和执行。
缩放抽象
抽象缩放是通过利用成熟的工具和代码库来进行的,从而使开发人员能够利用数十年的先前工作。结果是使应用更加复杂和表现力的能力提高。此外,抽象可伸缩性可提高性能和安全性,使开发人员可以从经过足够战斗测试和完善的程序中进行选择。
直到开发人员面对其缺席之前,抽象的可伸缩性通常不会考虑。 Web3仍处于早期阶段,今天的开发人员正在进行中,而没有抽象的全部好处。随着Web3生态系统的成长和开发人员的贡献越来越多,我们可以预料到复杂性,效率,安全性和纯粹的Web3应用程序的涌入。
作者:
Gabriel Coutinho de Paula是Cartesi生态系统的贡献者,建立了其核心技术和基础设施。他于2020年兼职,并在捍卫了他的硕士论文中的编程语言之后,在2021年加入了该项目。他根据无许可的指南锦标赛技术领导Cartesi防断层系统的开发,撰写链接组件(例如智能合约)和诸如验证器节点(例如验证器节点)等链零件。