Thriftの謎とIDLの型システム

3
前へ 1 ・・ 3 4
Muga Nishizawa @muga_nishizawa

@frsyuki あとは、typespec と namespace の記述が、リアルアプリとしてどれくらい煩雑になるかが気になります。namespace は thrift IDL の仕様もそうだけど。必要があれば別ファイルか何かに分けるとかですか。include(?)で。

2011-03-27 06:58:55
Sadayuki Furuhashi @frsyuki

@muga_nishizawa namespaceはtypespec同様にファイルを分けてもいいし、IDL処理系のコマンドライン引数でも指定できれば十分かなーと思っています。

2011-03-27 07:03:36
Sadayuki Furuhashi @frsyuki

$ idl-processor example.msgpspec --lang=ruby --namespace=Example とか。

2011-03-27 07:04:37
Muga Nishizawa @muga_nishizawa

140 行目の方がキレイだなぁ

2011-03-27 07:08:31
Sadayuki Furuhashi @frsyuki

例外クラスのサブクラスでは、フィールドの追加しかできず、かつフィールドIDを明示しないといけない制約がある。なのでバージョンアップ時にスーパークラスにフィールドを追加したくなったら、サブクラスで使われていないフィールドIDしか使えない。ネスト表記はこのあたりの一覧性が若干良い。

2011-03-27 07:16:07
Sadayuki Furuhashi @frsyuki

RPCをバージョン対応は、互換性を保ったまま拡張できそうかなーと。

2011-03-27 07:19:15
Sadayuki Furuhashi @frsyuki

"コロンの後ろはバージョン番号であるというのをライブラリ側で理解しているのはポイントで、例えばバージョン番号の付いていないsetが呼ばれたら、自動的にset:0を呼ぶ。" http://bit.ly/ebd5TY

2011-03-27 07:17:54
Sadayuki Furuhashi @frsyuki

複数の関数をひとまとめにした「プロファイル」と言うのを入れて、バージョン管理はプロファイルごとにするという案も。

2011-03-27 07:22:04
Sadayuki Furuhashi @frsyuki

関数セットごとのバージョニングとRPCの名前空間の記述案を追加。http://bit.ly/e2exFx

2011-03-27 07:40:29
Sadayuki Furuhashi @frsyuki

複数のserviceをまとめてapplicationを作る。関数の名前空間やバージョンはserviceごとに独立。

2011-03-27 07:41:58
Sadayuki Furuhashi @frsyuki

overrideとかdeleteを記号で書くか英単語で書くかは好みが分かれそうな。

2011-03-27 07:42:31
前へ 1 ・・ 3 4