Understand Architectural Patterns in Practical Clean Architecture
masterThis repository provides visual and code-based demonstrations of various software architecture patterns. Use these patterns as reference models for structuring your applications.
Note: The code samples in this repository demonstrate multiple ways and patterns to achieve tasks; they may not always represent the single best practice or the recommended approach for every specific situation.
Key architectural concepts covered include:
- Database Centric vs Domain Centric Architecture: Comparing approaches where the database drives the design versus where the business logic (domain) drives it.
- Hexagonal Architecture (Ports and Adapters): Decoupling the core logic from external concerns like databases or UIs using ports and adapters.
- Onion Architecture: A pattern focusing on placing the domain at the center, with dependencies pointing inward.
- Clean Architecture: A specific implementation of layered architecture that emphasizes independence from frameworks, UI, and databases.
- Classic Three-layer vs Modern Four-layer Architecture: Comparing traditional layered approaches with more modern, decoupled structures.
- Vertical Slice Architecture (Modular Monolith): Organizing code by business features (slices) rather than technical layers to improve modularity and scalability.