Protobuf生态圈(上)简介和数据库粘合层

本文介绍了如何利用Google的protobuf构建数据库粘合层,通过自定义代码生成器和反射机制,简化C++中数据库的CRUD操作,提供更易用的API。示例展示了如何定义proto文件并自动导出SQL,以及如何在C++中进行Insert、Update和Select等操作。
摘要由CSDN通过智能技术生成

 

关于Protobuf

    protobuf是google的一个开源序列化框架,基于二进制数据交换格式,兼顾了效率和灵活性。详见http://code.google.com/p/protobuf/

    本文假定读者对protobuf已经有了初步接触,故略过一些基本和细节的描述,着重于介绍protobuf在笔者项目中的应用思路。因项目主要编程语言是c++,所以本文的示例着眼于如何在c++中借助protobuf简化一些通用模块的处理。对于其它语言(java,python等),如果语言本身没有更好用的特性或者更方便的库的话,也可采取类似做法。

 

不仅仅是网络消息序列化

    虽然protobuf最广泛的应用是网络数据交换,但在使用过程中发现其框架本身的设计具有极灵活的扩展性,对于服务器来说,完全可以作为通用的数据解析层。一言以蔽之,即可以将各种形式的外部数据以非常易用的方式存取,通过最自然的本地语言对象进行操作(在本文中是c++)。借助protobuf框架的以下特性,构建protobuf生态圈将会是一个轻松愉快的过程:

 

1.代码生成器

    protobuf提供了自定义代码生成器的支持——“代码生成器”远没有它听起来那么复杂,相反,得益于protobuf合理的架构设计,笔者项目中的各类生成器一般只有几百行代码。

    protobuf的代码生成器可以跟静态语言的编译器进行类比,编译器:

    源码 ---> (编译器前端) ---> 中间代码 ---> (编译器后端) ---> 机器码

    而protobuf的代码生成过程如下:

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值