Layered Architecture
>
レイヤーのすり抜けを許可するやつ
レイヤーのスキップを許可しないやつ
何もしない層をただ通過する感じのやつ
形骸的な無意味な層があるやつ
個々のpackageで必ずしもLayerを共通にする必要はないと思う
例えば、feature A
ではUseCase層があるが、feature B
ではない、とかでも良い
必要になったら層を付け足せば良い
何もしていない層があっても無駄
記述量が増えるだけでなんの嬉しさも享受しない
関数型指向のLayered Architecture
Layerを分けるところまでは同じだが、各層で「型」「関数」の2層に分けるのが異なる
よってLayerは、2倍になる
この時点ですでに面白いが、型と関数に分けたことによって、層の順序を入れ替えることができ、それによって依存の向きを完璧に1方向に揃えられる