MessagePack Java版でnullの扱いをどうするか問題

4
Sadayuki Furuhashi @frsyuki

プリミティブ型を作ったのはJavaの選択であって、厄介なのはみんな知っているハズだから、プリミティブ型だけ挙動が違っても許されそうな気もする。

2010-11-08 03:47:21
Kazuki Ohta @kzk_mover

msgpack-java版が出来てきたので、msgpackのhadoop family向けlibraryを書いているのです. 楽しい:-)

2010-11-08 03:51:17
Sadayuki Furuhashi @frsyuki

@muga_nishizawa String型のフィールドにnullが入っているとpackできない問題が発生…今のところ、"参照型は"デフォルトでoptionalにしてしまう案が有力ですが、Javaの文化的にはどうでしょ? http://bit.ly/91S7cL

2010-11-08 03:54:07
Sadayuki Furuhashi @frsyuki

.@muga_nishizawa デフォルトでoptionalだと、バージョンアップでフィールドを新しく追加するときに、わざわざMessagePackOptionalを付けなくて済む(付け忘れる問題が発生しない)利点もあります。

2010-11-08 03:55:39
Sadayuki Furuhashi @frsyuki

.@muga_nishizawa 一方デメリットは、明示的にMessagePackRequiredのようなアノテーションを付け忘れると、思わずnullが入っていて気づかない可能性がある点(まぁJavaユーザーなら気をつけろょという話も…)と、

2010-11-08 03:57:16
Sadayuki Furuhashi @frsyuki

.@muga_nishizawa プリミティブ型はデフォルトでrequiredなので混乱しやすい点(そもそもJavaにプリミティブ型があるのが混乱を招いているワケでMessagePackのせいじゃない…)と、

2010-11-08 03:58:24
Sadayuki Furuhashi @frsyuki

.@muga_nishizawa optionalは配列の要素に明示的にnilが入っているケースだけでなく、要素数が足りない配列も受け入れるので、(明示的にrequiredを指定しない限りは)空の配列からのデシリアライズに成功してしまう(ユーザーの想定に反して)点、あたりです。

2010-11-08 04:00:57
SKS rep @repeatedly

@frsyuki MessagePackは言語ニュートラルだけど,それぞれの言語で最善のパフォーマンスを目指してるはずなので,その言語に合わせた設計にすればいいんじゃないかと思うよ!

2010-11-08 04:00:04
Sadayuki Furuhashi @frsyuki

まさにその通り! RT @repeatedly: @frsyuki MessagePackは言語ニュートラルだけど,それぞれの言語で最善のパフォーマンスを目指してるはずなので,その言語に合わせた設計にすればいいんじゃないかと思うよ!

2010-11-08 04:02:12