とは
src/
├ components/
+ │ ├ Toast.tsx
│ └ (その他いろいろの Component)
├ providers/
+ │ ├ ToastProvider.tsx
│ └ (その他いろいろの Provider)
├ contexts/
+ │ ├ toastContext.ts
│ └ (その他いろいろの Context)
└ hooks/
+ ├ useToast.ts
└ (その他いろいろの Hook)
「コンポーネントだから components/」「Providerだから providers/」「Contextだから contexts/」「Hookだから hooks/」
というように、各ファイルを「コードの形態だけで分類する」ようなディレクトリ構造になっています。
設計上のレイヤーによって分類することを「技術駆動パッケージング」と称し、アンチパターンだと耳にすることはありますが、これはレイヤーさえ考慮できていないので、「見かけ駆動パッケージング」といえるかも知れません。
凝集度のモノサシで見ると、そのディレクトリの中は「偶発的凝集」になっていると言えるでしょう。
コードを書くときに考えることが少なくて楽
見返すときは苦しむ
関連
反対:責務駆動
参考