コンテンツにスキップ

フロントエンドのクリーンアーキテクチャ(TypeScript・クラスなし)

要約

フロントエンドにもクリーンアーキテクチャの考え方を適用できる。UseCase・Service・Repository の層構造で責務を分離し、クラスではなく関数ベースで TypeScript 実装する。依存方向を一方向に保つことで保守性を高める。

層構造

UI (React/Vue 等)
UseCase(ビジネスロジック)
Service(ドメインサービス)
Repository(データアクセス抽象化)
Infrastructure(API, localStorage 等)

ポイント

  • クラス不要: 関数 + 型で同じ責務分離を実現できる
  • 依存の方向: 上位レイヤーが下位レイヤーに依存。逆は禁止
  • Repository でデータソースを抽象化: API・localStorage・IndexedDB を差し替え可能に
  • UseCase がビジネスルールを持つ: UI や外部ライブラリへの依存を持たない
  • テスタビリティが上がり、UI フレームワーク変更時の影響範囲が小さくなる

参照記事

https://dev.to/bespoyasov/clean-architecture-on-frontend-4311