抽象化
考えられる最もシンプルな状態にしておく
これがYAGNIでもない、最適な「変更にopenな状態」なのかも 最小化
minimalism
インターフェースを通して公開するものを最小化する
詳細を公開しすぎると、クライアントに統合されてしまう
拡張性
extensibility
抽象自体が拡張に開いているように設計する
合成可能性
composability
モジュールとして抽象を設計すると、抽象どうして組み合わせることができる
副作用を持たないように気にかけるなど
関連
コードの重複を見つけたとき、
そのコードの重複が、「偶然の重複」なのか「本物の重複」なのかを見抜く必要がある 偶然の重複なのであれば、重複すべできではない
ref 『Clean Architecture』.icon p.163
という考え方は、圏論の本質が自然返還であることと関連がありそうmrsekut.icon
関連
UpdaterとSelctorの2つに抽象化する
reducerや、FCもこの2つで表現できる
参考