Open SenruoYusei opened 5 months ago
それは一旦こっちで持つ?> クリーンアーキテクチャへの改変はこのIssueの責務です
こっちでクリーンアーキテクチャへの改変は行います
現在の実装では、すべてのロジックがController層に集中しており、これをクリーンアーキテクチャの原則に則って再構成することを目指します。この改変は、RSS取得機能だけでなく、既存のping-pongコマンドにも適用されます。このIssueの目的は、機能の動作が確保される状態を維持しつつ、コードをより管理しやすく、将来の変更に対応しやすい構造に改善することです。
提案されるディレクトリ構造と主要なファイルは以下の通りです:
/app
/domain
/entities
/interfaces
rss_retriever.go # RSSデータ取得のインターフェイス
command_handler.go # コマンド処理のインターフェイス
/usecases
/interactor
rss_interactor.go # RSS取得のユースケースを実装
ping_pong_interactor.go # ping-pongのユースケースを実装
/adapters
/controllers
rss_controller.go # RSS取得コマンドのコントローラー
ping_pong_controller.go # ping-pongコマンドのコントローラー
/repositories
rss_repository.go # RSSデータソースのリポジトリ実装
/infrastructure
/api
rss_api.go # 外部RSSフィードAPIとの通信を扱う
各層は以下の責務を持ち、次のように依存関係が構成されます:
この構造と分割により、各機能が独立しているため、将来の拡張や変更が容易になります。また、各層が独立しているため、テストや保守がしやすくなります。この構造に基づいてプロジェクトを進めていきましょう。
上記は #31 時点でのjust ideaなので、front/back再構成するなら変更する場所が出てきそう...
この issue は #36 の完了後に取り組むべき Issue です。
1. As Is (#36 完了後)
2. To Be
3. アクション
4. 課題