Open8

GUIアーキテクチャの変遷について理解する

UDUD

MVC→MVP→MVVM、FLUX、SAMなどいろんな用語が出てきてよく分からなかったので、自分の理解用と他の人に説明を求められたときに楽ができるようにまとめたい。

UDUD

MVCやらFluxやらMVVMやらのGUIアーキテクチャを状態管理フレームワークとして理解するの面白い

状態管理フレームワーク

データの流れを構造化するためのフレームワーク。
データの流れが複雑になって追えなくなるのを解消するために利用される。
これらの関心はデータの流れや状態管理にあるので、アプリケーションフレームワークがReactだろうがAnguglarだろうが思想は共通である。

  • Flux
  • Redux
  • SAM(State-Action-Model)
  • MVC(Model-View-Controller)
  • MVVM(Model-View-ViewModel)

https://qiita.com/aimy-07/items/e252ff3be2f4e7fdc9f5#状態管理フレームワーク

UDUD

現代の環境(高度なブラウザAPIなど)では、PDS(Presentation Domain Separation)の必要性は低い。
MVCが時代遅れと言われるのは、これが理由

Controllerがやるべき責務はもはやView(ブラウザAPI)に内包されているので、わざわざMVCで分ける意味がない。
それどころか、分けなくて良いものを無理やり分けようとすることになるのでうまくいかないことが多いというネガティブなデメリットが多い(FatViewController問題など)

当初(MVCが提唱されたのは1979年)のMVCはマウスカーソルがどのView要素上に位置するかController側でハンドリングしていたが、現代のWebブラウザはそれを全て自動で行っている。
https://ja.wikipedia.org/wiki/Model_View_ViewModel

https://ledsun.hatenablog.com/entry/2018/05/16/105131