无处不在的 Schema:世界的“契约”
Schema(模式)这个概念在计算机科学里简直无处不在,数据库只是最典型的一个。不管是关系型数据库里的 CREATE TABLE,还是微服务里常用的 Protobuf 的 .proto 文件,亦或是前端的 JSON Schema,本质上都在做同一件事:定义数据的“契约”或“元数据”。
在没有 Schema 的世界里,数据是“自描述”的。比如一个 JSON 文件 [{"name": "Tom", "age": 20}],解析器必须一个字符一个字符地读,看到引号知道是字符串,看到数字知道是整数,边读边猜,这在工程上极其低效。而有了 Schema,就等于提前给解析器发了一份“图纸”。解析器不需要猜,它看着图纸就知道“接下来的 8 个字节是一个 int64”,直接按偏移量把内存切出来就行。
Schema 的本质,是用结构上的确定性,换取解析和计算时的极致性能。