2016-02-24 bouzuya/rally-rxjs の stamp-rally list をつくった
2016-02-21 につくった bouzuya/rally-rxjs の stamp-rally list のことを書く。
rally-rxjs は bouzuya/vdom-rxjs-ssr をより実践的な形にしようという取り組み。bouzuya/virtual-dom-ssr → bouzuya/vdom-rxjs-ssr → bouzuya/rally-rxjs と進めてきたものだ。rally-rxjs は RALLY の管理側機能 を部分的に実装している。今回は sign-in と stamp-rally list をつくった。
rally-rxjs の実装について改めて書いておく。Node.js / TypeScript / Babel / Browserify の上に構築している。Framework 相当の部分は virtual-dom / rxjs / express / path-to-regexp を使っている。App 相当の部分は、整理されていないせいで醜いが、 RxJS を知っていれば難しくない感じだ。
今回の気づきは Subject<Action>
に Action
を投げる処理が頻発していることだ。現状の基本戦略は Observable<Action>
を変換した Observable<VDOM>
を Virtual DOM で流し込むというもの。ただ実際に書いてみると、ある Action
を引き金に次の Action
を誘発したいことがままある。その結果が Subject<Action>
を Observable<Action>
に merge
しておき、そこに subject.next(action)
で投げ込むというもの。副作用だ。醜い。
次回 rally-rxjs から発展させるときは Framework 側に Subject<Action>
を用意するのが良いと思っている。また、そこに投げ込む方法を用意するのではなく、App 側は Action
の変換を主にすると良い気がしている。type app = (action$: Observable<Action>) => Observable<Action>;
な感じ。Framework 側で判断して再度 Subject<Action>
に投げ込む形。ぐるぐるー。