jildin workers

SFA、CRM製品を開発するエンジニアのブログ

flux、reduxを一言で説明してみる

こんにちは。Jildinのトラです。

f:id:jildin:20170320171043p:plain

 

fluxを初めて知った時、ディスパッチャーだのストアだのアクションだのビューだの

結局何がしたいんだよ!っていう感じでした。

 

よく出てくるあの図ですね。

 

f:id:jildin:20170413223128p:plain

 

reduxはもう少しシンプルな図になりますね。

 

f:id:jildin:20170413223913p:plain

 

 

それではfluxやreduxを一言で説明してみます。

 

「アクションでしかデータが変わらないようにすること」

 

うーん、どうですかね。あまりわかりやすくできている自信がないので解説します。

 

もともとfluxはfacebookが提唱しているアーキテクチャです。

膨大なソースコードで動くソフトウェアを作っていると、機能を追加する時や

不具合を直す時に、何がどうなってんの状態になりがちなんですね。

 

で、特に

「このデータはいつどこで変更されたの?」とか

「このデータってどこで触ったらいいの?」ってなるわけです。

 

型がある言語であれば

オブジェクトをきちんと守ることも実装次第でできるわけですが

javascriptのような自由な言語では気をつけていても

データが自由に変更できてしまうため

カオスな状態になりやすいのです。

immutableにする方法もなくはないですが。。

 

そこで、図のようなループを作って

「この順番でデータの更新をしてくださいね。」

という考え方なんですね。

 

だからいきなりstoreにアクセスするという逆の方向に進むことは

できなくしましょうというのがfluxアーキテクチャです。

 

この一方通行はfacebookのreactのような仮想domと相性がいいので

今大変流行しているんだと思います。

 

fluxのフレームワークはたくさん出ています。

fluxのアークテクチャを元にfacebookが自らフレームワーク化したのがreduxです。

 

なのでfluxとreduxを一言で説明するなら

 

「アクションでしかデータが変わらないようにすること」

 

ですかね。

一言でいい感じに説明できるいい案があれば、更新したいです。

 

 

 

visit our corporation page
http://corp.jildin.com