Salsa 如何工作
视频介绍
关于 Salsa 工作原理的最完整介绍,请查看 youtube 上的 How Salsa Works 视频。
如果想更深入了解, Salsa In More Depth 深入了增量算法的细节。
如果你在中国,可以在 B 站上观看 "How Salsa Works" 和 "Salsa In More Depth"。
核心理念
Salsa 的关键思想是将你的程序定义为一组查询。每个查询都像函数 K -> V
一样使用,该函数从某个 K
类型的键映射到一个 V
类型的值。查询有两种基本类型:
- 输入:系统的基本输入。你可以随时更改它们。
- 函数:将你的输入转换为其他值的纯函数(没有副作用)。查询的结果被记录下来,以避免大量的重新计算。
当你对输入进行更改时,Salsa 将(相当智能地)计算出何时可以重新使用这些被记录的值,以及何时必须重新计算它们。
三步使用 Salsa
使用 Salsa 就像 1、2、3 一样简单:
- 定义一个或多个包含所需输入和查询的查询组 (query groups) 。从一个这样的组开始,但稍后你可以使用多个组将你的系统分解为组件(或将代码分散到多个 crates 中)。
- 在适当的地方定义查询函数 (query functions)。
- 定义数据库 (database),该数据库存储你使用的所有输入/查询。查询结构将体存储所有输入/查询,还可能包含代码需要的任何其他内容(例如,配置数据)。
要查看这方面的实际示例,请查看 hello_world
示例,该示例有许多解释如何工作的注释。
深入管道
查看管道章节 (plumbing) ,了解对 Salsa 生成的代码以及它如何连接到 Salsa 库的更深入的解释。