generated at
Fullstack Components

出典:
>@kentcdodds: "Fullstack Components" 🔥
A UI component that includes server code in the same file (for both data loading and mutations)
>同じファイルにサーバーコードを含むUIコンポーネントを配置する(データの読み込みとミューテーションの両方)
思想
コード

koushisa
サーバ通信含めた機能の全体を1コンポーネントで俯瞰して見られるのはいいなと思った
単純GUIならこれまでになくシンプルに作れそう
スケールしだすと、宣言的UIにおける6種のステートとのからみの考慮は必要
The five UI statesをどう表現するかとか
loaderでGlobal StateForm Stateを使いたい、レスポンスをマージしたいとか
>@koushisa: 例えばNext 13のappDirでデータ設計するとして、RSCの配下にJotaiのProviderおいて、RSC上でfetchしたデータはJotaiのStoreに流す
もし現実的にやるとしたら機能単位パッケージング + GraphQLデータフェッチ
コンポーネントツリーServer Stateを合わせるスタイル
複雑GUIなら適切にLifting state upしてContainer/Presenterパターンでサーバとフロントを分離する
RESTだと、リソース単位となるので機能単位でまとめるのが難しい
アプリケーション全体のアーキテクチャとして採用するかは組織構造やアプリの特性とデータ構造次第な気がする
開発を分業するなら積極的には採用しないと思う
バックエンド、クライアントを一人で見られるエンジニアだけで構成されるチームならよい
規模が小さいアプリとか機能単位、PoC的な意味あいが含まれていればいいかも

Simple or Easyでいうとどうだろうか
どのような課題感があってこれが生まれたのか、なにをSimpleにしたのかはよくわからない
スケールを意識すると従来の構造と変わらない印象をうけた
koushisaが思考の切り替えが出来ていない?(すぐ複雑GUIを想定しだす)
バンドルサイズは抑えられるのかな
合成容易性について
色々やりだしたときの制約が気になる
loaderはhooksとは違う領域のようなので、クライアントの状態などをうまく合成するのが難しそうな感じがする
基本Navigation Stateにのせるかんじになるのかな
ドキュメントは読み切れていないが、server/clientの境界線に技術的な制約はありそう