V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhfsxtx
V2EX  ›  程序员

protobuf 与程序的数据 结构组织

  •  
  •   zhfsxtx · 2013-04-28 15:55:24 +08:00 · 5854 次点击
    这是一个创建于 4008 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用protobuf 之后,否还是需要自己写数据结构来存储管理 数据, 直接使用protobuf 的message来存放大量数据是不是不大合适,也不方便查找,修改,删除,新建等操作? 请用过的大大指点下啊
    7 条回复    1970-01-01 08:00:00 +08:00
    nullptr404
        1
    nullptr404  
       2013-04-28 17:18:38 +08:00
    你还没理解protobuf是个什么东西,这东西根本不是用来存数据的,也不提供类数据库的功能。它只是相当于一个代码生成器,生成对应平台/语言的消息代码结构。这样你的通信协议只要维护一个.proto文件就行了。
    chmlai
        2
    chmlai  
       2013-04-28 17:26:04 +08:00
    直接用protobuf生成的类, 扩展麻烦.
    自己另外写数据结构的话, 写Mapping麻烦.
    marchtea
        3
    marchtea  
       2013-04-28 19:22:26 +08:00
    protobuf本身的目的还是数据交换,而不是用来存放数据。如果要存到数据库里头的话还是得提出来。
    iamxhu
        4
    iamxhu  
       2013-04-29 18:41:58 +08:00   ❤️ 1
    去年有段时间看了看protobuf,感觉这货就是Google扔出来的一个lite版。
    主要用来处理不同系统间通信时统一的数据交互方式,按理应该把RPC也一起给做了,但是Google偏要把内部基于Protobuf实现的RPC功能给删了。一个体系的东西,只将其中一部分开源,让人感觉太没诚意了。
    Facebook如Thrift就要好得多。
    现在谁说Google开放,我都觉得TMD扯淡。除了发了几篇论文,内部那些稍微有点含量的东西都藏着掖着。
    tarsier
        5
    tarsier  
       2013-04-29 18:56:56 +08:00
    @iamxhu 对的,所以Google的朱会灿到了腾讯soso之后,就山寨了这么一套叫做poppy的东西。 protobuf + RPC
    marginleft
        6
    marginleft  
       2013-04-29 20:54:51 +08:00
    @iamxhu 赞同。我第一了解protobuf,是因为研究http://dl.google.com/vgsa/vgsa_20090210.7z 的时候,发现很多文件,头部都写着,自动生成的文件。然后好奇,google了一下,才开始了解这货。google内部技术,确实强大,貌似gsa建立索引等关键部分,都是用自己的编译器编译的,还有什么google borg。一大堆。

    PS:gsa root以后,大开眼界。google技术真牛。不过,人家自己搞的好东西,也没有分享的责任。分享一点也算好的。
    hooluupog
        7
    hooluupog  
       2013-04-29 22:13:03 +08:00
    @ iamxhu facebook的Thrift还是是来自google的前员工做的,受了protobuf的启发,google到现在也没说什么。如果换其他公司,估计早就索要专利费了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3649 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 04:24 · PVG 12:24 · LAX 21:24 · JFK 00:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.