mcpField
C
clean-architecture

clean-architecture

github.com/mindrally開発2891.0k 回インストール3 週間前に更新
リポジトリ

clean-architecture について

アプリ開発で Clean Architecture を適用するためのスキルで、Flutter と Go の指針を含みます。内向きの依存関係、レイヤー分離、テスト可能なインターフェース、業務ロジックの整理を重視します。

主な機能

  1. 01ドメイン、アプリケーション、インフラ、プレゼンテーション層
  2. 02Flutter の機能別プロジェクト構成
  3. 03flutter_bloc の状態管理パターン
  4. 04Go バックエンドのハンドラー、サービス、リポジトリ
  5. 05インターフェース駆動のテストと依存性注入

活用シーン

  1. 01機能ごとの Flutter アプリ構成
  2. 02Go の業務ロジックとデータアクセスの分離
  3. 03レイヤー間の依存境界の設計
  4. 04モックを使ったユニットテスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mindrally/skills --skill clean-architecture

インストール後、Claude Code で/clean-architectureを入力して読み込まれたか確認します。

詳細

クリーンアーキテクチャ

アプリケーション開発におけるクリーンアーキテクチャのパターンに精通しています。

コア原則

クリーンアーキテクチャでは、依存関係が内側を向く独立したレイヤーを通じて、関心事を分離します。

  1. ドメインレイヤー(最内層) - ビジネスロジックとエンティティ
  2. アプリケーションレイヤー - ユースケースとアプリケーション固有のロジック
  3. インフラストラクチャレイヤー - 外部要素(データベース、API、フレームワーク)
  4. プレゼンテーションレイヤー(最外層) - UI とユーザーとのやり取り

基本ルール:内側のレイヤーは外側のレイヤーに依存してはいけません。

Flutter + クリーンアーキテクチャ

アーキテクチャレイヤー
  • プレゼンテーション:ウィジェット、BLoC、UI コンポーネント
  • ドメイン:エンティティ、ユースケース、リポジトリインターフェース
  • データ:リポジトリの実装、データソース、モデル
機能優先の構成
feature/
  data/
    datasources/
    models/
    repositories/
  domain/
    entities/
    repositories/
    usecases/
  presentation/
    bloc/
    pages/
    widgets/
flutter_bloc による状態管理
  • 状態管理には flutter_bloc を使用します
  • Freezed を使って不変な状態を実装します
  • 適切なパターンでイベントと状態を処理します
  • BLoC の責務を単一のものに絞ります
エラー処理
  • Dartz の Either<Failure, Success> パターンを実装します
  • 例外を使わず、関数型のエラー処理を使用します
  • さまざまなエラー状況に対応する明確な Failure 型を定義します
主なライブラリ
  • flutter_bloc - 状態管理
  • freezed - 不変クラスとユニオン型
  • get_it - DI 用サービスロケーター
  • dartz - 関数型プログラミングユーティリティ

Go バックエンドのクリーンアーキテクチャ

レイヤーの分離
  • ハンドラー - HTTP/gRPC リクエストの処理
  • サービス - ビジネスロジックとユースケース
  • リポジトリ - データアクセスの抽象化
  • ドメインモデル - 中核となるビジネスエンティティ
インターフェース駆動開発
  • すべての依存関係に対してインターフェースを定義します
  • コンストラクターを通じて依存性注入を実装します
  • インターフェースは小さく、責務を明確に保ちます
  • テスト用のモックを簡単に作成できるようにします
プロジェクト構成
project/
  cmd/              # Application entry points
  internal/
    domain/         # Business entities and interfaces
    service/        # Business logic implementation
    repository/     # Data access implementation
    handler/        # HTTP/gRPC handlers
  pkg/              # Shared utilities
テスト戦略
  • モックを使ったテーブル駆動のユニットテストを作成します
  • 高速なユニットテストと統合テストを分けます
  • インターフェースを使ってテストダブルを注入します
  • ビジネスロジックの高いカバレッジを達成します

コメント