在 Confio 做一名 Rust 开发者是什么样的体验
2023-08-09 09:57
IBCL
2023-08-09 09:57
订阅此专栏
收藏此文章

翻译: 红军大叔 

原文作者: Melanie Crouch 

原文链接: Exploring the World of Rust Development: Insights from a Confio Developer[1]

译者注: Confio GmbH 致力于为区块链开发者构建工具,以便更快地交付更好的产品。我们最出色的创作是 CosmWasm、CosmJS 和其他对于 Cosmos 生态系统及其它领域至关重要的技术。

Rust 开发者 Christoph 为 Confio 的开源库工作, 包括 cw-storage-pluscosmwasm-vm和标准库(cosmwasm-std);为合约开发者实现新的辅助功能,修复错误和提高效率都是他日常工作的一部分。

我和 Chris 坐下来聊了聊,想了解他为什么从 web2 转向 web3,为什么 Rust 是他最喜欢的编程语言,以及在 Confio 工作的感受如何。

让我们从你在 10 个月前加入 Confio 之前做过的事情开始。你之前是做什么的呢?

完成大学学业后,我加入了一家较大的公司,专注于开发工具。我的工作主要围绕着通过添加新功能、插件和集成来增强他们的集成开发环境(IDE)。我还负责开发代码生成工具,没有涉及到网页开发。

后来,我转到了一家同时从事前端和后端开发的 web2 公司。这是一家只有五个人的小公司。不幸的是,我对他们使用的技术栈并不特别喜欢,其中包括 Angular 和 PHP。

PHP 作为一种脚本语言,缺乏严格的类型系统,容易出错。它没有编译器,这让工作变得相当令人沮丧。我在那里度过了两年,发现其实我并不喜欢我正在做的事情。

在前一家公司的第二年,我开始着手一些个人项目。其中一个项目涉及创建一个需要安全密钥处理和探索各种策略的交易机器人。由于传统股票市场竞争激烈,盈利报告可能具有不可预测的结果,所以我转向了加密货币的世界。这就是我开始深入学习 Rust 的时候。

我立即被 Rust 吸引,因为它提供了一种高级的开发方式,同时保持了良好的性能特性。编译器的错误信息通常很有帮助,而且这门语言提供了一个安全的环境。虽然有时候由于这些安全特性,你可能会与 Rust 编译器发生冲突,但它通常是正确的,而且你总是可以使用"unsafe"关键字作为一个逃生口。

这允许你使用原始指针,但它也迫使你明确地表达出来,并在使用时进行深思熟虑。这就是为什么我更喜欢 Rust,而不是深入研究像 C 和 C++ 这样的语言,因为在那里你可能会无意中编写出危险的代码。

认识到 Rust 是未来的方向,我开始寻找一个能够进一步发展我的技能的角色。去年九月,我通过加入 Confio 实现了从 web2 到 web3 的转变。

你觉得如果将 web3 与 web2 比较, 在软件开发的心智以及方法上有怎样的区别?

在 web3 领域的合约开发与 web2 的后端工作有概念上的相似之处,但同时也增加了更昂贵的数据库访问的复杂性。这需要跳出传统思维,寻找经济高效的解决方案来解决问题。

在开发cosmwasm-vm 时,相较于基本的 Web2 项目,更加注重安全性和可靠性。然而,对于像 Facebook 或 Google 这样的大型 Web2 项目,情况可能并非如此。

cosmwasm-std中,对 API 设计的每个细节都进行了细致的考虑。一旦添加了某个功能,要移除它将变得非常困难,因为这会破坏合约代码,所以每个小细节都必须仔细评估。这与大型 Web2 项目(如 YouTube API 或 Facebook API)中所见到的情况有些相似。

去中心化的概念如何对你构建应用有怎样的影响?

实际的去中心化部分由cosmos-sdkTendermint共识处理。作为合约开发者,你不必过多考虑这个问题。从开发者的角度来看,它与构建普通应用类似。

不同之处在于对某些特别的功能,需要找到创造性方式构建,以提高效率和降低成本。例如,设计一个去中心化交易所(DEX)架构与传统的基于订单簿的交易所有所不同。还有更微妙的考虑因素,比如在代币持有者之间分配资金。

在 Confio 工作是什么感觉?与你之前的工作有何不同?

我真的很喜欢我们远程办公的方式。这样可以节省很多浪费在通勤上的时间。我也喜欢我可以相对独立地工作,只偶尔会开会澄清重点。我们的层级很扁平,团队可以自行决定如何组织工作。作为一名开发人员,我变得更加自信,并学到了很多关于如何在团队中高效协调的方法。

在这里工作的人也很棒,每个人都非常支持。

我以前在混合远程工作环境中工作过,但那些公司总是在我附近有一个真正的实体办公室,所以相比之前,这仍然有点变化。我也觉得工作文化有些不同。更加独立,压力较小。

如果有人考虑从 Web2 过渡到 Web3, 你有没有什么特别推荐的资源?

我发现在 YouTube 上查看关于 Web3 协议设计的解释非常有帮助。这帮助我理解了为什么 Uniswap 能够运作,或者更具体地说,是什么激励了流动性提供者提供等额的代币。

对于那些尚未了解这门语言的人来说,他们应该从哪里开始呢?

对于那些尚未了解 Rust 的人,我建议在学习这门语言时心里装着一个想要解决的项目。这种方法可以让你在解决项目中独特的挑战时学习并保持动力。此外,我建议至少阅读 Rust 编程语言[2] 的前几章。它提供了全面的概述,并且可以免费获取。

加入 Confio

你对 Rust 充满热情,渴望在区块链技术领域产生影响吗?加入 Confio GmbH 的充满活力的团队,成为我们激动人心的旅程的一部分。

微信外链

[1]

Exploring the World of Rust Development: Insights from a Confio Developer: https://medium.com/confio/exploring-the-world-of-rust-development-insights-from-a-confio-developer-a5c00729077f

[2]

Rust 编程语言: https://doc.rust-lang.org/stable/book/


【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

IBCL
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开