json の実装。修復・変換・diff・schema を分割する
json の実装では、ひとつの大きなロジックにまとめすぎないことを意識しています。
壊れた文字列を直す処理と、構造を比較する処理と、値を抜き出す処理は、それぞれ役割が違うからです。
役割ごとに分ける
実装では、
- 修復ロジック
- 整形・変換ロジック
- diff や比較ロジック
- schema 参照ロジック
を分けて管理すると、後から変更しやすくなります。
UI と処理の境界をきれいにする
フロント側では、編集体験を壊さないことが大事です。
そのため、処理の本体と UI の状態管理はできるだけ分けて、
どこでデータが変わるのかを追いやすくしています。
小さく保つ意味
json ツールは多機能ですが、内部まで巨大にする必要はありません。
責務を分けておけば、修復の改善だけ、diff の改善だけ、という更新がしやすくなります。
この設計にしておくと、将来の機能追加にも耐えやすくなります。