Feature-Sliced Design
frontendのディレクトリ構造設計
website
https://gyazo.com/ec6f73d398ef1a8d288d8277c8882af8
3階層
Layers
7つの階層があり、各レイヤはそれより下のレイヤのみ参照できるようにする
例えば、appはどこからも参照されないし、sharedはどこにも依存しないということ
processesはdeprecatedらしい
Slices
Segments
上図ではentitiesからのみSlicesが生えているが、これはあくまでも概念図で、
他の部分からも生えることはあるし、
逆にLayersからSlicesを経由せずに直接Segmentsが生えることもある
感想
ところどころの思想は良さげに感じるが、成果物に納得感がないmrsekut.icon
なぜこれをエッセンス集みたいにせずに、アーキテクチャとして打ち出してるのかわからない
オレオレ設計方法みたいなのを打ち出したくなるのだろうか
設計方法まで言っちゃうとかなり具体的すぎる
Clean Architectureでいう「The Clean Architecture」の部分だけを打ち出している感じ
これが広まると、CAのあるある誤解と同じような誤解が広まりそう
一般的なfrontendのあるあるをパターン化したものに過ぎないので、
部分的に参考にすることはできるが、
全てをこれに乗っかろうとするとすぐにカーゴ・カルト・プログラミング的になるだろう
Atomic Designと同様、分類不明なものが出てくる
その対処として、この分類に無理やり当てはめるか、自分で考えるかの差がでてくる
そしてこれは、Feature-Sliced DesignやAtomic Deisgnに限らず、全ての知見に対して同じことが言える
よくあるものをせっせと分類した感じ
過剰に見えるものも多い
整理した割に登場人物が多くて美しさに欠ける
featuresにPackage by Featureが採用されているのは、そうだよねとなった
featuresとentitiesをフラットに置いてる部分とかはなるほどと思った
抽象度が異なるので確かに分離することで良くなることも多そう
ただこれも、常にそうすべきとは思わない
Feature-Sliced Design - スケーラブルなフロントエンドアーキテクチャを目指して