[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
生成各平台的类?进行复用开发?)
是怎么进行跨越不同平台的抽象编程的?
请教下,谢谢