歌舞伎座.tech#12「メッセージフォーマット/RPC勉強会」
うっ、なんかJSONのキーの名前が長年typoされていたのを直したときのことを思い出した... #kbkz_tech
2016-11-27 14:39:33ProtocolBuffers、v2ではフィールドにrequired指定ができた。便利そうに見えるけど実は罠。何故ならrequiredフィールドは実質的に削除不能になってしまうから(全コードからせーのでフィールド削除するのは不可能→突然の死)v3で削除。 #kbkz_tech
2016-11-27 14:41:21proto2ではデフォルト値を指定できた。デフォルト値が指定されたのか、明示的に設定されたのかを区別するbooleanがあった。 proto3ではデフォルト値は固定。そして元から入っていたのか明示的にセットされたのかの区別は出来なくなった。 #kbkz_tech
2016-11-27 14:43:02みてる【Watching nico live】歌舞伎座.tech#12「メッセージフォーマット/RPC勉強会」 #nicoch99991 #kbkz_tech nico.ms/lv282041100?re…
2016-11-27 14:44:03そこでロバストネス原則(送信は厳密に、受信は寛容に)。「protobufだけの話じゃない、JSONでも同じ。メッセージフォーマットは運用上の罠が多い。protobufを採用するつもりがなくても、LanguageGuideを読んで思想だけ盗んどくと幸せになれる」#kbkz_tech
2016-11-27 14:47:43thriftガイドライン的にはrequired => optionalを変更してもよさそう。 本当にrequired => optionalだけなら可能。でも切り戻しなどを考えると辛いことになるという経験則 #kbkz_tech
2016-11-27 14:47:46含蓄ある。というわけで読もう。 Language Guide | Protocol Buffers | Google Developers developers.google.com/protocol-buffe… #kbkz_tech
2016-11-27 14:48:34因みにthriftのrequirednessはデフォルトで送信側はrequired、受信側はoptionalになってる #kbkz_tech
2016-11-27 14:49:17grpc-javaのflow-controlについて興味があるのだけれど、今日はそういう話あるのかな・・? #kbkz_tech
2016-11-27 14:53:33というかそれ以外でabsence確認できるとoptional bool あたりが三値になってアレになる #kbkz_tech
2016-11-27 14:54:30全部 optional にすると、本当は required な optional field と本当に optional な optional field を区別したい問題とか出てくるのでは #kbkz_tech
2016-11-27 14:56:00あんまり大したこと書いてないけどさっきの発表資料です tayama0324.github.io/slides/2016112…
2016-11-27 14:58:32あんまり大したこと書いてないけどさっきの発表資料です tayama0324.github.io/slides/2016112…
2016-11-27 14:58:32@draftcode 将来 required じゃなくなるかもしれないけど現時点では required 扱いな optional field とかあるじゃないですか
2016-11-27 14:58:54まともな頭して実装してたら普通の速度出る気がするしフォーマットの方が速度に効いてきそうな気がするけど世の中そうでもないのかな。 #kbkz_tech
2016-11-27 15:05:16