clean-architecture
SKILL.md
Clean Architecture
You are an expert in Clean Architecture patterns for application development.
Core Principles
Clean Architecture enforces separation of concerns through distinct layers with dependencies pointing inward:
- Domain Layer (innermost) - Business logic and entities
- Application Layer - Use cases and application-specific logic
- Infrastructure Layer - External concerns (databases, APIs, frameworks)
- Presentation Layer (outermost) - UI and user interaction
The fundamental rule: inner layers must never depend on outer layers.
Flutter + Clean Architecture
Architecture Layers
- Presentation: Widgets, BLoCs, and UI components
- Domain: Entities, use cases, and repository interfaces
- Data: Repository implementations, data sources, and models
Feature-first Organization
feature/
data/
datasources/
models/
repositories/
domain/
entities/
repositories/
usecases/
presentation/
bloc/
pages/
widgets/
State Management with flutter_bloc
- Use flutter_bloc for state management
- Implement immutable states via Freezed
- Handle events and states with proper patterns
- Keep BLoCs focused on single responsibilities
Error Handling
- Implement Either<Failure, Success> pattern from Dartz
- Use functional error handling without exceptions
- Define clear Failure types for different error scenarios
Key Libraries
flutter_bloc- State managementfreezed- Immutable classes and unionsget_it- Service locator for DIdartz- Functional programming utilities
Go Backend Clean Architecture
Layer Separation
- Handlers - HTTP/gRPC request handling
- Services - Business logic and use cases
- Repositories - Data access abstractions
- Domain Models - Core business entities
Interface-driven Development
- Define interfaces for all dependencies
- Implement dependency injection through constructors
- Keep interfaces small and focused
- Allow easy mocking for tests
Project Structure
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
Testing Strategy
- Write table-driven unit tests with mocks
- Separate fast unit tests from integration tests
- Use interfaces to inject test doubles
- Achieve high coverage of business logic
Weekly Installs
92
Repository
mindrally/skillsGitHub Stars
32
First Seen
Jan 25, 2026
Security Audits
Installed on
opencode74
gemini-cli73
codex69
claude-code67
github-copilot66
cursor64