/note/tech

大規模システムにおけるディレクトリ構成をRDBのカーディナリティを参考に考える

最近流行りの CleanArchitecture 風のディレクトリの切り方、一見整理されているように見えても実はモジュールの役割やモジュール同士の繋がりが全然見えないのであまり良くないと思っている。

そもそもディレクトリみたいな階層構造でネットワーク構造的なモジュールの繋がりを表現できるわけがないので、それは無駄な努力ではあるのだが。

レイヤー間の呼び出し規則を表現しているのだという意見もあるけど、結局はコーディング時に気を使って実装する必要がある以上、わざわざディレクトリで表現するようなことか...? という思いもある。

そのように考えると、現代では古典的とさえ言えそうなモジュールの役割をルートディレクトリにフラットに置くスタイルの方がむしろ分かりやすいと思っている(アプリケーションのルートディレクトリにController、Model、View...と並ぶ奴)。

モジュール間の呼び出し規則や所属するレイヤーなどはドキュメントで補完すべき知識だろう。