redux には良い middleware が必須

redux で reducer を分割すると reducer の範囲外の情報が欲しくなることがある。 middleware なしの redux だとそれに対応できないので reducer の分割はできないのでは、という疑問からはじまる一連のツイートのまとめ。 View で state 全体から Action を生成する案 ↓ View に不要だが Action に必要な情報を、 View に処理させる構造はおかしい 続きを読む
2
bokuweb @bokuweb17

redux本体はピュアで綺麗にできているっぽくみえるけど、肝心の部分がmiddlewareにまるなげされている感が拭えない。

2016-05-24 11:46:13
bouzuya @bouzuya

「action をつくる」部分って saga みたいなイベントフローを相当制御できないと困ると思う。 #boajs だとそこを service 層相当のものにしていて、rxjs の power で各自が思うように殴ってくれって気持ちだ。

2016-05-24 11:46:55
Yuki Kodama @kuy

@bouzuya @bokuweb17 Viewコンポーネントから処理に必要な完全なactionを投げる、ということをせずにmiddlewareにヒントだけ与えて、その後の処理も全部任せるのがちょっと回りくどいけどredux wayな気がする。

2016-05-24 11:48:12
bokuweb @bokuweb17

@kuy @bouzuya そこが根幹なんでしょうね。ただ、middlewareでのgetStateやselectに若干抵抗感がある。

2016-05-24 11:48:35
Yuki Kodama @kuy

というかReduxはMiddlewareがないと成り立たないってのを誰も大きな声で言ってないのが問題な気もする・・・。

2016-05-24 11:49:33
bokuweb @bokuweb17

@kuy thunkで一回死なないとワカラナイ気がする・・。

2016-05-24 11:50:11
Yuki Kodama @kuy

@bokuweb17 @bouzuya まぁそれってReduxにおける1つの巨大satateからセレクタ関数で切り出して・・・ってあたりの部分が最初の頃はどうにも気持ち悪いというか抵抗感があったのに似てる。

2016-05-24 11:51:25
Yuki Kodama @kuy

ちなみに私はredux-thunk、redux-api-middleware、middlewareで3回死んでます。

2016-05-24 11:52:09
bouzuya @bouzuya

@kuy @bokuweb17 うまく wrap していればそんなもんじゃないのという気がしてます。

2016-05-24 11:52:40
Yuki Kodama @kuy

ぼくら死んでばっかりだ。死にゲー。 twitter.com/bokuweb17/stat…

2016-05-24 11:53:04
bouzuya @bouzuya

. @kuy @bokuweb17 のおかげで、ぼくの中での redux でもやもやしている部分がいい感じに解決されつつある。

2016-05-24 11:53:11
Yuki Kodama @kuy

雑なRedux入門じゃなくて、精密なRedux入門が必要だ・・・。

2016-05-24 11:54:35
bouzuya @bouzuya

@kuy @bokuweb17 redux に限らず、ぼくの中で自然に分割するとそうなると思います。middleware というか application service (ある種の facade) の呼び出しですね。

2016-05-24 11:54:51
bouzuya @bouzuya

application service は、永続化層から集約をとってきて、集約のコマンドを実行して、また永続化するが基本の流れ。

2016-05-24 11:55:56
Yuki Kodama @kuy

とてもいいこと話してる気がするからまとめが必要なような

2016-05-24 11:57:48
bouzuya @bouzuya

redux は永続化層とドメイン層との分割が怪しくてアプリケーション層の提供が中途半端な代物ですよ。

2016-05-24 11:58:06
bouzuya @bouzuya

ここでの redux は pure な redux ね。middleware なしの。

2016-05-24 11:58:36
bouzuya @bouzuya

イベント基盤として捉えると極めて貧弱で使い物にならない。redux-saga レベルで備えてギリギリなんとかなるかなって感じ。

2016-05-24 11:59:11
Yuki Kodama @kuy

.@bouzuya さんがキレイにまとめてくれるかもしれないけど、自分なりにもまとめてみるとまた観点が違っておもしろいかもしれない。

2016-05-24 12:04:26
Yuki Kodama @kuy

意図的に丸投げすることでRedux自体の寿命は伸びそうだなーって気はしてます。 twitter.com/bokuweb17/stat…

2016-05-24 12:05:54
bokuweb @bokuweb17

@kuy それも分かります。本体が身軽なのは素晴らしいんだけど、そういう認識が薄いまま普及しているのが問題な気がする。

2016-05-24 12:08:27
bokuweb @bokuweb17

薄いというか明示されていないというか。

2016-05-24 12:10:00