読み込み中...
読み込み中...
2020年4月 - 現在
複数のWebサイトからファイルを自動ダウンロードするツールを開発しています。クリーンアーキテクチャを採用し、domain、infrastructure、interface、use_casesの層に分離した設計を実現しています。ストラテジーパターンを使用して、サイトごとの情報取得戦略とダウンロード戦略を抽象化し、拡張性の高いアーキテクチャを構築しています。FastAPIを使用してAPIサーバーを実装し、バックグラウンドタスクで非同期にダウンロードを実行します。SQLiteを使用してダウンロード情報を管理し、injectorを使用して依存性注入を実現しています。SeleniumやPlaywrightを使用してブラウザ自動化を行い、yt-dlpを使用して動画ダウンロードを実現しています。
クリーンアーキテクチャを採用し、domain(エンティティ)、infrastructure(外部ライブラリとの連携)、interface(CLI/API)、use_cases(ビジネスロジック)の層に分離しています。ストラテジーパターンを使用して、サイトごとの情報取得戦略(website_strategy)とダウンロード戦略(download_strategy)を抽象化し、新しいサイトの追加が容易になる設計にしています。FastAPIを使用してRESTful APIを実装し、バックグラウンドタスクで非同期にダウンロードを実行します。SQLiteを使用してダウンロード情報を永続化し、injectorを使用して依存性注入を実現しています。