歌舞伎座.tech#12「メッセージフォーマット/RPC勉強会」
protobuf IDLはデータ構造を記述。json-schemaはjsonの値域を定義。 #kbkz_tech
2016-11-27 14:22:19シリアライズされたデータはセルフコンテイニングではないので外部からスキーマを与えてあげないとデシリアライズ出来ない #kbkz_tech
2016-11-27 14:23:40Protocol Buffers, シリアライズの仕様を見るたびによくできてるんだろうなーと思うけど実際そこまでコンパクションしてどのくらい嬉しいんだろう。別の問題もいろいろ出てきそうな気がするけど。 #kbkz_tech
2016-11-27 14:29:53ワイヤーフォーマットの仕様の理解は必須ではないが、どういったフィールドへの変更が安全にできるのか、などがわかるようになる。互換性の表の暗記ゲーではなくなる。 #kbkz_tech
2016-11-27 14:32:19あー、負数だと最上位ビットが必ず立つから varint のコンパクションが破滅するのか。それで sint 系と #kbkz_tech
2016-11-27 14:33:59負数のエンコーディングについて qiita.com/tayama0324/ite…の比較 #kbkz_tech
2016-11-27 14:34:28required、thriftだったらoptionalにしてから廃止っていう段階的措置があるけどprotobufだとダメなのかな。 #kbkz_tech
2016-11-27 14:37:02required 直感的には便利。でも将来の互換性を考えると、requiredフィールドが不要になっても削除できない。全てのサーバークライアントが一斉にスキーマをかえる必要がある(難しい) #kbkz_tech
2016-11-27 14:37:40全てのフィールドは required であるべき ↓ 全てのフィールドは optional であるべき ↓ 全てのフィールドは optional で、 default value があるべき ←ぼく今ここ #kbkz_tech
2016-11-27 14:37:50一見便利そうで実際正論であっても、実際に出すと結論イマイチなBad Partsだってのはあるあるですねぇ。実践的ではないというやつ。 #kbkz_tech
2016-11-27 14:38:27