Curs - 7 - Clean Architecture
Curs - 7 - Clean Architecture
Curs - 7 - Clean Architecture
PRINCIPLES
What is Software Architecture?
Clarity and Understandability: A good architecture is clear and understandable to all stakeholders involved in the process
Scalability and Flexibility: A good architecture is flexible and able to accommodate changes and growth in the software over time
Performance and Efficiency: The architecture should be designed with performance and efficiency in mind
Robustness and Reliability: The architecture should be robust and resilient to failures, errors, and unexpected inputs
Alignment with Business Goals and Requirements: The architecture should align with the business&requirements of the project
What is Complexity?
"Complexity is anything related to the structure of a software
system that makes it hard to understand and modify the
system.” - "A Philosophy of Software Design" by John
Ousterhout Stanford University
Commands -> are responsible for changing the state of the application
Queries. -> retrieve data without changing any state
CQRS Pattern in C# and Clean Architecture
CQRS Pattern in C# and Clean Architecture
CQRS Pattern in C# and Clean Architecture
CQRS (Command Query Responsibility Segregation)
Benefits:
Higher Scalability
Read and Write Scalability
Infrastructure Optimization
Simplified Code Maintenance
Clear Separation of Concerns
Reduced Complexity
Targeted System Needs
Customization
Consistency Handling
CQRS Pattern in C# and Clean Architecture
CQRS (Command Query Responsibility Segregation)
Challenges:
Increased Complexity
Implementation Overhead
Data Consistency
Command and Query Handling
Command Handlers
Query Handlers
CQRS Pattern in C# and Clean Architecture
CQRS (Command Query Responsibility Segregation)
When to use?