コアの部分が自動生成で作られてて非常に読みにくい。しかも無駄な間接が多い。
C#って誰が書いてもそんな酷いソースにはならないので、こういう気分になったのは初
酷いコード耐性は、歴戦のふるつわものなので割と高いから、この位へっちゃらではある
そんな訳でソースは読みにくいのだが、慣れてくるとだいたいクエリ式だけで自分の望む
自分の望むObservableを返す関数をなんとなくクエリ式で実装する。
メンバに何か持たせたい時でもそんな述語のクラス作って、レキシカルクロージャをクエ
INotifyを適当に待つObservableとか作って、そこに条件をクエリ式やW
MVVMとの相性もばっちり。
というかasyncとawait要らない気がするんだが、、、
UnitTest回りのモックの手厚いサポートは今や当然ではあるが、やはりいいね。
こういう、これまでテストが書きづらかった所が割と簡単にテスト書けるようになるのは
問題をObservableとして公開する所と、その上のLINQ式に分ける、っての
eventがFromEventPatternで簡単につながるのが良いね。
これのおかげで
DataBind<ー>INotify<ー>Observable
と全ての要素が接続される。
ViewModelを作る時にはどうせICommandとINotifyは(ほぼ)必
もちろんViewModelにつけても良い。
その上でのクエリ式の所は本当に柔軟なので、要求の変化にも簡単に対応出来る。
やりたい事を意味の領域で記述する。
データ抽象というのの一歩上だな。
操作抽象と言うか計算抽象というか。
その抽象の語彙を構築する事が新しいObservableを提供する事に対応し、これ
つまりDSL自身が抽象化の仕組みを持ってるって事だな。
LINQはC#と適度に見た目が違うのが良い。
最初見た時はその無理やりくっつけた感が好きになれなかったが、こうやってSQLから
という事でRxは大分自由に使えるようになった。
今後WPF アプリは全部これでいこう、と思うくらいには気に入ったよ。
AndroidもReactiveExtensionで行くかはまだ未定だが。
なんか凄いプログラムが好きになるテクノロジだなぁ。