概要
Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data.
スキーマ言語であり、構造を定義する言語ということですね。
解決する課題
- ざっくり調べてみた感じでは、分かりやすい課題は見つからなかった
- 自分がそこまで深掘りしていないだけかも
- 重大な欠陥を埋めるようなものではなく、漸進的な改善こそが課題なのかもしれない
- たとえば、社内のサービス間をつなぐ際にgRPCを採用すると高速化できるとか
- サービス間をつなぐ際のインタフェイスを共有できるとか
なんだか調べてみた感じだとだいたいgRPCを用途として活用されている感じがした。
社内のマイクロサービス群をgRPCで接続して使うイメージ。
gRPCに関しては gRPCをキャッチアップしてみた で少し調べていた。
どのように課題を解決するのか
あえて、課題/解決策という切り口でキャッチアップを進めているけれども、解決策はそれ自体という感じで
- protocol buffers を採用する
protocol buffers が何か課題を解決するというよりは、それをベースに用いて応用した領域でそこに存在している課題を解決するという形になる。
スキーマ言語なので当然といえば当然なのかもしれない。
それ自体に価値があるというよりは、応用して価値が生まれる的な話ですね。
感想
- スキーマ言語であることはわかった
- JSONとかXMLみたいな
- それ自体ではスキーマ言語であるということ以上の話はなくて、gRPCで活用して脚光を浴びている感じはした
- 個人レベルのサービス開発で利用するかどうかは微妙な感じで、お仕事でチャンスがあれば深掘りしてみたいかもくらいの温度感でした
- 記法、スタイルガイド、チュートリアルはそのままなので必要に応じて公式のリファレンスを辿れば良さそう
参考
- Protocol Buffers
- protocolbuffers/protobuf
- 記法 https://developers.google.com/protocol-buffers/docs/overview
- スタイルガイド https://developers.google.com/protocol-buffers/docs/style https://github.com/ckaznocha/protoc-gen-lint
- チュートリアル https://developers.google.com/protocol-buffers/docs/gotutorial
- go以外のチュートリアルも用意されています