概要
- 2010年のBackbone と 最新のReact の比較
- コード量や目的はほぼ同じ
- Reactの抽象化 による複雑性の増加
- 実装の分かりやすさ と デバッグの難しさ
- 今後求められる 新しいモデル への期待
15年の進歩
- Backbone(2010年) と React(最新) の実装比較
- コードの長さや機能はほぼ同等
- Reactは巨大なエコシステム と 多大な開発工数 を背景
- 進歩の本質は「どれだけ良くなったか」ではなく「どれだけ変わっていないか」
- 進化の実感の薄さ が浮き彫り
シンプルさの錯覚
- Reactは見た目がクリーン で読みやすい印象
- その可読性は 抽象化による複雑性 の代償
- Backboneは処理の流れが明確 で、初学者でも追いやすい
- 「このイベントが起きたら、この処理をする」という 直感的なモデル
- Reactは多くを隠蔽 し、内部の理解がなければ問題解決が困難
React特有の落とし穴
- リストアイテムのkey をindexにしたことで stateが消える 現象
- inputのvalueがundefined になり、制御不能・制御済みの切り替えでリセット
- useEffectで無限ループ :依存配列に毎回新しいオブジェクトが入る
- useMemoやuseCallback で「識別子の安定化」が必要
- クリックハンドラが古いstateを見る :クロージャの罠
- setStateの関数型更新 や依存配列の調整が必要
- どれも 本質的な課題 ではなく、 React固有の対処法 を強いられる
魔法の代償
- これらの問題は 珍しいものではなく日常的
- デバッグにはReact内部の深い理解 が必要
- 「なぜ動くのか分からないまま動く」ことの危うさ
- 仮想DOMのdiffやスケジューリング の知識が求められる
- BackboneやjQueryはハックしやすく、透明性が高い
次に求められるもの
- 本質は「 イベント+状態=UI」のシンプルな方程式
- 大規模アプリ にはReactの複雑さも意義あり
- しかし 大多数の小規模アプリ には過剰な魔法
- 直感的かつ堅牢、ハック可能な新しいモデル への期待
- BackboneやjQueryのように中身が見える開発体験 の復権
出典: panphora
ReactとBackboneについて、時々考えることがあるけど、結論はちょっと違うんだよね。Backboneは僕の最初の「JSフレームワーク」の一つだった。面白いと思ったけど、Reactが出た時に「お、実際に役立つものだな。Backboneは主にアプリケーションフレームワークの接着剤みたいなもので、あんまり自分には役立たないな」と思った。Reactから得た具体的な大きなメリットは、 - DOMに定期的に触れなくていいこと - リアクティブな状態管理 これらの二つは、プログラマーとしての僕の生活をかなり楽にしてくれたし、スパゲッティみたいなソフトウェアを作らない能力も育ててくれた。