首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

protobuffer 是否很难用

2013-03-12 
protobuffer 是不是很难用我按照例子编出一个addressbook.pb.cc(1023行)addressbook.pb.h(651行)怎么这么

protobuffer 是不是很难用
我按照例子编出一个addressbook.pb.cc(1023行)  addressbook.pb.h(651行)怎么这么大?
就一个类就要要编出这么多行代码,到时怎么维护?还有类里面有这么多方法函数都需要么?


我现在要传输很多结构体,是不是每个结构体都要这么编译下,每个结构体都要编出一份xxx.pb.cc  xxx.pb.h???
是不是还有其他更好的简单的方法?
[解决办法]
如果是自动生成代码,这些心不操也罢。

[解决办法]
很强大

不算特别难用
[解决办法]
关于你说的代码太多,然后要维护的问题。我觉得这个基本没必要担心,毕竟你觉得你什么时候会想要去修改和维护pb自动生成的代码?

至于说所有生成的结构,一般都是要编译进程序的。
不过,pb也支持在程序运行时,动态加载.proto文件。这个你可以搜索一下,protobuf的反射。或者在pb的官方文档中查看相关章节
[解决办法]

引用:
我按照例子编出一个addressbook.pb.cc(1023行)  addressbook.pb.h(651行)怎么这么大?
就一个类就要要编出这么多行代码,到时怎么维护?还有类里面有这么多方法函数都需要么?


我现在要传输很多结构体,是不是每个结构体都要这么编译下,每个结构体都要编出一份xxx.pb.cc  xxx.pb.h???
是不是还有其他更好的简单……

当然,不过既然是自动编译,那除了增加编译时间外,其他开销微乎其微。
其他方法也有,比如你自己定个协议,但是你就得面临着不同版本的协议之间的共存问题,而且是二进制协议,很难维护。
如果不是非要二进制协议的话,你可以考虑json,我觉得是更优的选择,特别是你这个场景,很容易扩展成restful,并且文本协议轻松地支持多种语言平台,相比之下,pb可没有js的版本。
[解决办法]
捡其用到的用,用不到的眼不见为净。

热点排行