isomorphic所感
React・Fluxまわりをひと通り触ってみたので所感を徒然。
isomorphicなアプリを書く
そこまで大した話ではない。
- isomorphicなライブラリをnpmで入れる。
- isomorphicなコードを書く。
- node.js(io.js)ではそのまま動作。
- ブラウザ用にはbrowserify。
所感:
- bowerのオワコン感。
- webpackのtoo complicated感。
altJSの選択
巷のFluxライブラリはReact前提な部分があるので、全てを生JSを書くことはまず考えられない。
ほぼ以下の4択(ハイブリッド可能)。
- CoffeeScript
- 書きやすさ以外に特筆すべき部分はない。
- TypeScript
- 型を書けるという圧倒的ユニークスキル。
- JSX
- The React。ES6のサポート。
- ES6 JS (babel, etc.)
判断の軸:
- 型
- これを再重視するならTypeScript以外の選択肢はない。
- 書きやすさ
- CoffeeScriptはなんだかんだで書きやすい。ただES6が十分書きやすいので、今後の立場はどうなるか。
- 将来性
- 当然のことながらES6がランタイムの最適化の期待大。
- React親和性
- 1つのライブラリがコンパイラの選択肢にまで影響を及ぼすとは。
- あるいはVirtualDOMを簡単に書くためのライブラリを使うのは手だが…。
所感:
- 個人的には全てをbabelに統一するのが良い感じはしている。
- babel, babel-node
- browserify, babelify
- JSXサポート
- ES7サポート (stage 0)
- ただしJSDoc3はES7シンタックスをまだサポートしていない。
isomorphicを崩す仕組み
変な表現ではあるが、全てを共通コードにするのは無理。
- サーバー側: DB, セキュリティ, ...
- クライアント側: CSS, アニメーション, ...
透過的に委譲するような仕組み
- Fetchr的な
クライアント側にサーバー側のコードを見せたくない話
- JSファイルサイズ肥大化
- セキュリティ
目下この部分を考え中
- コンパイラレベルのサポート。conditional compilation的な。
- あまりこういう話はhotじゃない感。
- 今はエントリポイント分けて頑張るか。
Fluxについて
TODO
Polyfilについて
TODO
*1:元es6to5