1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-24 12:32:21 +00:00

ch4-02-fix typos

This commit is contained in:
sfw 2018-07-04 20:05:15 +08:00
parent 982698fdf0
commit d3f34b4a10

View File

@ -1,10 +1,10 @@
# 4.2. Protobuf # 4.2. Protobuf
Protobuf是Protocol Buffers的简称它是Google公司开发的一种数据描述语言并于2008年对外开源。Protobuf刚开源时的定位类似于XML、JSON等数据描述语言通过附带工具生成等代码提实现将结构化数据序列化的功能。但是我们更关注的是Protobuf作为接口规范的描述语言可以作为设计安全的跨语言PRC接口的基础工具。 Protobuf是Protocol Buffers的简称它是Google公司开发的一种数据描述语言并于2008年对外开源。Protobuf刚开源时的定位类似于XML、JSON等数据描述语言通过附带工具生成代码并实现将结构化数据序列化的功能。但是我们更关注的是Protobuf作为接口规范的描述语言可以作为设计安全的跨语言PRC接口的基础工具。
## Protobuf入门 ## Protobuf入门
对于没有用过Protobuf读者建议先从官网了解下基本用法。这里我们尝试如何将Protobuf和RPC结合在一起使用通过Protobuf来最终保证RPC的接口规范和全。Protobuf中最基本的数据单元是message是类似Go语言中结构体的存在。在message中可以嵌套message或其它的基础数据类型的成员。 对于没有用过Protobuf读者建议先从官网了解下基本用法。这里我们尝试如何将Protobuf和RPC结合在一起使用通过Protobuf来最终保证RPC的接口规范和全。Protobuf中最基本的数据单元是message是类似Go语言中结构体的存在。在message中可以嵌套message或其它的基础数据类型的成员。
首先创建hello.proto文件其中包装HelloService服务中用到的字符串类型 首先创建hello.proto文件其中包装HelloService服务中用到的字符串类型
@ -92,7 +92,7 @@ service HelloService {
$ protoc --go_out=plugins=grpc:. hello.proto $ protoc --go_out=plugins=grpc:. hello.proto
``` ```
在生成的代码中多了一些类似HelloServiceServer、HelloServiceClient的新类型。这些类是为grpc服务的并不符合我们的RPC要求。 在生成的代码中多了一些类似HelloServiceServer、HelloServiceClient的新类型。这些类是为grpc服务的并不符合我们的RPC要求。
grpc插件为我们提供了改进思路下面我们将探索如何为我们的RPC生成安全的代码。 grpc插件为我们提供了改进思路下面我们将探索如何为我们的RPC生成安全的代码。
@ -233,7 +233,7 @@ func main() {
$ protoc --go-netrpc_out=plugins=netrpc:. hello.proto $ protoc --go-netrpc_out=plugins=netrpc:. hello.proto
``` ```
其中`--go-netrpc_out`参数高中protoc编译器加载名为protoc-gen-go-netrpc的插件插件中的`plugins=netrpc`指示启用内部名为netrpc的netrpcPlugin插件。 其中`--go-netrpc_out`参数告知protoc编译器加载名为protoc-gen-go-netrpc的插件插件中的`plugins=netrpc`指示启用内部名为netrpc的netrpcPlugin插件。
在新生成的hello.pb.go文件中将包含增加的注释代码。至此手工定制的Protobuf代码生成插件终于可以工作了。 在新生成的hello.pb.go文件中将包含增加的注释代码。至此手工定制的Protobuf代码生成插件终于可以工作了。