知识卡片

用元数据驱动代码生成解决多语言多协议的一致性问题

普通读书笔记卡 · 1808.b

内容

手工维护对外数据接口要面对内部语言各异、外部协议各异的组合爆炸,逐一手写胶水代码繁琐且易在字段变更时忘同步。Facebook用Thrift把方法输入输出定义成语言无关的元数据,代码生成器自动产出各语言绑定和Schema文档。给类型加字段只需改一处元数据,所有语言格式的接口代码自动同步。

参考来源

- 位置:《架构之美》第6章《数据增长:Facebook平台的架构》6.2.1节《数据:创建一个XML Web服务》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0148.xhtml) - 结论依据:原文明确"这里的优美解决方案,就是利用元数据来封装数据类型和描述API的方法签名……使用像Thrift这样的漂亮工具有以下好处:自动化类型同步……跨语言同步"。 - 原始内容:这里的优美解决方案,就是利用元数据来封装数据类型和描述API的方法签名……使用像Thrift这样的漂亮工具有以下好处:自动化类型同步……自动化绑定生成……自动化文档……跨语言同步。