Pitch与Whimsical技术栈问询:特殊API响应是否关联Clojure或MongoDB?
相关问题解答
你观察到的两款产品的API响应格式共性,和Clojure生态的技术选型直接相关,和MongoDB数据库没有必然联系,具体原因如下:
- 这类特殊格式是Clojure生态常用的序列化输出,要么是原生的*EDN(可扩展数据表示)*格式,要么是基于EDN拓展的Transit格式,本身就是Clojure原生数据结构的文本序列化形式,和Clojure的运行特性高度适配:
- Clojure的核心数据结构(向量、映射表、关键字、集合等)本身有标准化的文本表示规则,后端不需要额外做格式转换,就可以直接把内存中的业务数据序列化输出,能有效提升开发效率
- 这两类格式都支持自定义数据类型的序列化,对于Pitch、Whimsical这类文档协作产品,业务场景中存在大量自定义业务对象,用这类格式做序列化、反序列化的成本远低于通用JSON格式
- 该格式和MongoDB没有关联:MongoDB原生的BSON序列化格式和你观察到的响应结构没有共性,这类响应结构是后端服务主动选择的上层序列化协议,和底层存储选型没有绑定关系
- 两款产品选择这类格式而非JSON的额外考量:协作类产品需要频繁处理增量同步请求,同数据量下这类序列化格式的体积比JSON更小,客户端解析速度更快,能有效降低传输带宽成本和客户端性能开销
内容的提问来源于stack exchange,提问作者clark22
相关产品推荐
相关产品推荐

