zoukankan      html  css  js  c++  java
  • Protocol Buffer学习教程之开篇概述(一)

     

    1. Protocol Buffer是什么

    Protocol Buffer是google旗下的产品,用于序列化与反序列化数据结构,但是比xml更小、更快、更简单,而且能跨语言、跨平台。你可以把你的数据按你的要求结构化,然后可以转化成多种数据流,同时其他语言可以通过不同的流转化成自己熟悉的语言的数据格式。如C++语言开发者,定义了一个User数据结构,java开发者可以把此数据流轻易的转化成java环境下的数据结构。

    我们知道json比xml更轻便,风闻json数据大小是xml的1/20,然后protobuf又是json的1/10,所以对数据大小要求高的选择protobuf合适;同时protobuff序列化与反序列化速度更快,所以对速度要求高的,可以选择protobuf;最关键一点,让我选择protobuf的原因是,它是向后兼容的,也就是说你可以对你的消息体进行修改,新旧版本之间相互兼容,而xml与json不容易做到这一点。

    然后,protobuf的缺点是可读性差,不结合protobuf消息结构,是没办法读懂数据流的,这也是为获得轻便、高效做出的妥协。

    2.它是如何工作的

    它是怎么工作的呢,首先要把所有数据结构通过一个简单易懂的“.proto”文件定义,然后再把这个文件,通过Protocol buffer编译器编译成相应的类(C++、java、go等)文件。然后开发的时候,可以直接调用类文件中的接口,进行读、写、序列化与反序列化等操作。也就是说,首先它有一个任何语言开发者都易懂的规范文本(.proto),按此规范定义数据结构,然后用一个工具翻译成自己熟悉的语言的类文件,通过此类文件可以简单的操作数据。

    3.如何学习protobuf

    学习protobuf非常简单,首先你得学会写简单的“.proto”文件,也就是用protobuf语法描述你的数据结构,得先学习基本的protobuf语法,这样你就能定义自己的数据结构,所以我将在第二部分介绍protobuf的语法。其次,当你有自己的“.protobuf”文件后,你要把文件编译成你熟悉的开发语言(C++、java、python等)的数据结构类文件,所以你要一个编译器,在第三章节,我将介绍如何通过官方的源码获得编译器,然后如何把proto文件编译成C++类文件。最后,是如何利用生成的C++类文件,序列化与反序列化数据,与一些常用的方法与注意事项,将在最后一章节中介绍。

    4.资源下载

    官网首页(需要FQ)链接,最新稳定版本官方链接,各种历史版本官方链接,protocolbuffer有各种语言的版本,目前支持的语言有C、C++、java、python、C#、GO、js等语言。我们这里讲C++稳定版本v3.0.0,windows环境下的VC++开发。在以下链接中,找到“protobuf-cpp-3.0.0”,下载链接,proto规范官方介绍链接

  • 相关阅读:
    内联汇编的使用
    metamask注记词
    一个简单的增删改查合约
    企业邮箱账号
    压缩包管理
    设计模式
    软硬链接ln
    文件IO-Linux
    静态库和动态库
    gdb调试
  • 原文地址:https://www.cnblogs.com/MingoJiang/p/8682016.html
Copyright © 2011-2022 走看看