Open4

remixはUX driven Web Appとしてベストではないか

kikutakikuta

Webアプリケーションの開発において、UXの最良にすることを最上の目的とすると、開発者は、ブラウザ上でのユーザーの入出力(UI)と、入出力データの永続化さえ意識すればいいのでは?と思っている。
あとは、何を提供するのか?という、ビジネスの観点になる。

つまり、めっちゃ使いやすくて、データの残し方が優れていれば、あとは提供する価値(機能)の問題に集中できるのではないか。
例えばnotionは原始的に言えばテキストエディタだけど、データ形式が優れているおかげでビューの自由度が高く、UIが優れているので、結果として高いUXを提供している。
これをベースにして、提供する価値は自動化、AIなどに広げているが、詰まる所、UIとデータの保存の仕方が優れているという根本がなければ生まれないものではないか。

なお、ビジネスロジックとデータの永続化は、(少なくとも設計フェーズにおいては)セットにして考えることで、ユーザーがやりたい事を定義するべきだと考える。つまり、ビジネスロジックとデータの永続化が固まったら、後はUXを高めるためのUIの問題になる。

remixは、UIについて責任を持ち、URLを中心に、ユーザーの入力するform(action)と、出力するデータ(loader)が軸になって、この2つを最適化するための機能を提供している。
ユーザーにとって、URLは他者とのコミュニケーションにおけるスナップショットになる。
つまりユーザー視点では、ブラウザ上の作業の、一時保管場所として、URLを利用する。
つまりユーザーが見たいデータを直接見に行ける点でURLを中心にするのは優れていると言える。
他は、データの書き込み、読み取りとデータの表示だけがremixの責務となり、開発者は、どのように読み込むか(cache等)を考える必要は最小限である。
つまり、「ユーザーに何を見せるのか」ということと、「ユーザーの入力のしやすさ」に集中できる。

なお、remixはMVCにおいてVCの責務を担うが、これは複雑性を伴うものではなく、むしろシンプルにしている。結局のところ、バックエンドからは全て「loader」を介して読み込むため、バックエンド側に軸があり、remixでは参照するだけになる。 繰り返しになるが、remixの責務は「ユーザーの見えるもの」だけになる。

kikutakikuta

(全くの初心者だが)上記の考え方をベースにしてアプリのプロトタイプを少しずつ作っている。
上記で書いた、ビジネスロジックと、データの永続化を考えている所である。
私としては、MVCとかではなく、MV(モデル・ビュー)の2つさえあればよく、もう少し言えばDMV(データベース、モデル、ビュー)を考えることが、アプリ開発において最適なのではないかと思っている。

この考えが本当に正しいかを、設計、開発を通じて確かめたい。

kikutakikuta

なお、蛇足だがデータベース、モデルは、prismaを使って考えている。
テーブル設計をそのままschemaとして書いておけるし、それをデータベース、モデルとしても使えるので、上記のDMVのDMの部分を担うことができる。