msgpack-java v0.7 の設計について
JacksonのアノテーションAPIはかなり良くできているが、シリアライザ/デシリアライザと密結合している気がしてきた。MessagePackではAPIの設計はパクれるが、再実装が必要そう。 cc: @oza_x86
2013-11-28 10:00:59しかし非常に便利。かなりの究極手段として JsonDeserialize と JsonSerialize アノテーションが用意されているのは好印象。あるいは JsonCreator も良い設計。
2013-11-28 10:01:59モデルクラスの実装が大幅に簡単になる。PlazmaDBでも使いたいけど、JSONはイヤなので、やっぱりMessagePack版が欲しい。
2013-11-28 10:03:18@frsyuki なんの話がまるでわかってないですが、API的にはJSR353を踏襲しておくとPOJOとのマッピングは別ライブラリに丸投げできる可能性があるように思います
2013-11-28 10:08:25JSONとかMessagePackは外部との接続インタフェースに使う可能性ケースが多いので、結構なケースにおいてPOJOにならない。例えば外部表現と内部表現(効率重視)は違ったりする。
2013-11-28 10:12:45ので、POJOを丸投げをできるのは嬉しいけども、結構なケースをカバーできないという点において、実装はオプションかなと思います。
2013-11-28 10:13:26@oza_x86 @frsyuki そこを分離しておくのは良いですよね(と最近思うように)。pojoを丸投げするときに型のマッピングの情報も埋め込みたくなるけれど、それをmsgpackなどの仕様に入れると逆に用途が狭くなるというか
2013-11-28 11:04:30例えば今目の前にあるケースでは、Jacksonではクラスはmapにマッピングされるが、既存のREST APIがタプルでデータを返却する。こういうケースにはJsonValueとstaticメソッドにJsonCreatorが必要なのだけども、たぶんJSR-533では対応してくれない。
2013-11-28 10:23:08タプルというかJSONではarray。データがタプルで表現するかクラスで表現するかはアプリケーションの都合で、たぶんJavaだと全部クラスだけど、Rubyだと割と気軽にArrayで作ってしまうケースも多い。そんなわけでクライアントとサーバで内部表現が違うのは、たぶん結構ある。
2013-11-28 10:25:19