依赖项

"当神想要惩罚我们时,他们会满足我们的祈祷。" —— 奥斯卡·王尔德

几十年来,代码重用的想法仅仅是一个梦想。编写一次代码,打包成库,并在许多不同的应用程序中重用的想法是一个理想,这种理想只实现了少数标准库和公司内部工具。

互联网的增长和开源软件的兴起最终改变了这一切。第一个公开可访问的仓库,它收集了大量的有用库、工具和辅助程序,全部打包以便于重用,这就是 CPAN:综合 Perl 存档网络,自1995年以来在线。今天,几乎每种现代语言都有一个全面的开源库集合,存放在一个包仓库中,这使得添加新依赖项的过程变得简单快捷。1

然而,随着这种便捷、方便和速度,新的问题也随之而来。通常,重用现有代码仍然比自己编写代码容易,但依赖他人的代码会带来潜在的风险和陷阱。本书的这一章将帮助您意识到这些问题。

重点是特别针对 Rust,以及使用 cargo 工具,但许多关注的问题、主题和议题同样适用于其他工具链(和其他语言)。


1

显著的例外是C和C++,其中包管理仍然有些碎片化。