quip 是如何 进行抽象复用的?

2018-10-01 18:59:53 +08:00
 helloworld12

[https://zhuanlan.zhihu.com/p/23912284]( [庖丁解牛] Quip 发展的传奇故事)

Build once, use multiple times - 复用的艺术
无论你在写软件的任何时候,优秀的抽象编程总是至关重要的,能横跨不同平台的抽象编程对我们这个小团队尤为宝
贵。假如我们不得不分别在 8 个不同平台上从头开始构建产品,我们就不可能走到今天这么远。所以我们在库和体系
架构方面投入了大量的精力,来确保我们只用造一次轮子就能在多个平台使用。

举个例子,我们在数据存储、内存数据结构以及跨平台通讯上广泛地使用 Protocol Buffers (译者注:谷歌开发的一种
可扩展的结构化数据存储格式)。这让我们能够便捷地完成很多事情,比如直接从 MySQL 读取 Protocol Buffers③;
在 Python 网页服务器上修改数据;然后把它们发送给我们的 native clients (译者注:谷歌开发的一种可以让浏览器
直接运行机器码的沙盒技术),这些 native clients 上使用的数种语言包括 C++,Objective C,Java 或者 C#;甚至还
可以把那些相同的数据结构下载到我们的 JavaScript 编辑器。此外,所有这些操作都是通过自动生成的数据串行化代
码完成的( data serialization code ),有着强类型数据结构的它们同时运行在强类型的通讯渠道上。假如我们使用的
特定语言专用的数据结构或者甚至是 JSON,通过如此繁杂的步骤来处理数据不仅将会变得非常乏味,而且也会容易出
错。

上面说, 用Protocol Buffer 来进行抽象复用,而不是用JSON 以及 优秀的抽象编程总是至关重要的,能横跨不同平台的抽象编程对我们这个小团队尤为宝贵

此外,所有这些操作都是通过自动生成的数据串行化代码完成的( data serialization code ) (用protocol buffer 生成各平台的类?进行复用开发?)

是怎么进行跨越不同平台的抽象编程的?

请教下,谢谢

867 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/494452

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX