最近悩んでいる React/Redux でそれなりの規模のアプリケーションを作るための良い設計について、
日頃ネットで気になる記事を漁っていたんだけど、積読がたまってきた&Twitter やら Pocket やら Qiita に散らばってしまったのでここらで一旦整理します。
(★ はその中でも特に読みたいもの)
Redux の設計
実際に GitHub にあるソースコードを読んで得られた知見について。
「Storeはどんな具合に構成すべきか」「Store初期化(hydration)用データの定義はどうすべきか」「Componentはどう整理すべきか」と目次だけ見ても非常に実用的な内容。
Ducks というディレクトリ構成の考え方。
React/Redux に限らず、複雑なアプリケーションをどう設計するかという点で非常に参考になる。
またこの中の 複雑なJavaScriptアプリケーションを考えながら作る話 で Flux の話をしている。
CQRS を理解したい。
無料の Ebook。
Immutable.js
Redux にモデル層を云々と言われているやつ。
サンプルは簡単な Todo アプリだが、 Immutable.Record
を使ったモデルという考え方を理解するのに一番良い記事に見える。
その他、日本語でも入門的記事はいくつか見つかった。
- React使い必見! Immutable.jsでReactはもっと良くなる | Wantedly Engineer Blog
- Immutable.jsでreact+redux環境が楽になりそうな話 | Gaku'sMemo
- Immutable.jsでReduxにModel層を導入しビジネスロジックを集約する | Simplie Post
- React、Redux、Immutable.jsを使ったTodoアプリの作り方 - WPJ
Redux その他
バリデーション
Redux でバリデーション処理をどこに実装するのが正解なのかなーというのは自分も気になっていたので。
- reselectを用いてReact Reduxにvalidationの仕組みを実装する 1/2 - Qiita
- Reduxでのクライアントサイドvalidationをどこでやるべきか? - Qiita
非同期処理
いまは redux-thunk 使っているけど、redux-saga 使うことになったら読みたい記事。
後者は Action を UI 寄りの低レベルのものとビジネスロジック寄りの高レベルのものに分けて考えていて、saga を使わなくてもこういった考え方は参考になる。
こちらは async/await 使えば Middleware なくてもきれいに書けるんじゃないか、という話。
Tips 的な
一回目を通すだけで良さそう。
React の様々なパターンやテクニックについて。
番外編:RxJS
興味はあるがおそらく手を出すのはだいぶ先かなー。。。