Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ProtocolBuffers調べてみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
yoshihiro.ri
November 28, 2024
0
7
ProtocolBuffers調べてみた
勉強会で発表する時に使ったスライドです
※正確な情報をお求めの方は公式ドキュメントを参照ください
yoshihiro.ri
November 28, 2024
Tweet
Share
More Decks by yoshihiro.ri
See All by yoshihiro.ri
LINEで朝活!技術トレンドを1日1分でキャッチする『Daily Tech Digest』を作ってみた
yoshihiro999
0
520
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
220
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
98
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Producing Creativity
orderedlist
PRO
348
40k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
3.9k
エンジニアに許された特別な時間の終わり
watany
106
230k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Code Review Best Practice
trishagee
74
20k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
94
It's Worth the Effort
3n
188
29k
Transcript
ProtocolBuffers 調べてみた
Protocol Buffersとは? スキーマ言語 データのバイナリ変換に使えるフォーマット 異なる言語同士の通信に役立つ Google が開発 gRPCに使われている
Protocol Buffersとは? Userデータ ① ②
Protocol Buffersとは? Userデータ ① ② uint32と思っていたのでエラーが起きました
Protocol Buffersとは? protoファイル
Protocol Buffersとは? バイナリデータ 1.クラス生成 2.データをシリアライズ protoファイル ① ②
Protocol Buffersとは? protoc user.proto --python_out Pythonのクラス定義が自動生成 1.クラス生成
data: b'\n\x05Alice\x10\x19\x1a\
[email protected]
' 2.データをシリアライズ
Protocol Buffersとは? ① ② uint64ね、はいはい 1.クラス生成 2.データをデシリアライズ バイナリデータ protoファイル
本文を追加 javascriptはint64を正確に扱えない 1234567890123457000に丸めてしまう 1.言語非依存
言語非依存 どの言語でもprotoファイルからコード生成できる シリアライズで言語特有の値の受け渡し精度を改善
前方・後方互換性
前方・後方互換性 異なるprotoファイルのバージョンの共存ができる ver. 1.0 ver. 1.1
前方・後方互換性 バイナリデータ 1.0 protoファイル ① ② ver. 1.0 ver. 1.1
desert,foodには デフォルト値が入る
前方・後方互換性 バイナリデータ 1.1 protoファイル ① ② ver. 1.0 ver. 1.1
desert,foodは 無視します
ver. 1.0 ver. 1.1 ver. 1.2 ver. 1.4 異なる言語、異なるproto間の やり取りが可能!!!
ver. 1.1
デメリット 可読性が低い 1. スキーマ依存 2. デバッグしづらい 3. RESTful APIとの相性が悪い 4.
メッセージサイズが小さいとメリットが薄い 5.
概要: Googleが開発したバイナリデータシリアライズフォーマット メリット: 高速、非言語依存、後方・前方互換性あり デメリット: 可読性低い、スキーマ依存、RESTful APIあまり向いてない Protocol Buffers(Protobuf)まとめ
質問タイム
ありがとうございました!