O princípio básico de projeto Clean se baseia na ideia de que a complexidade é um recurso e não um defeito. Em vez de evitar complexidade, nossa meta deve ser otimizá-la. O objetivo do Clean Architecture é facilitar o entendimento de sistemas grandes. Ele promove a construção de sistemas robustos, flexíveis e escaláveis que são mais fáceis de testar e compreender por meio da separação adequada dos aspectos principais do sistema:
- Regras de negócios do domínio.
Aplicando Princípios da Clean Architecture para Projetos de Software Solto
- Comunicações externas (APIs) que envolvem a entrada / saída de dados de nossos sistemas.
- Configuração e implantação do ambiente em que o sistema é executado.
- Frameworks de terceiros, bibliotecas específicas ou tecnologias específicas (ORMs, controllers ASP.NET MVC, IDEs e outras ferramentas) que não são essenciais ao sistema.
**Regras de negócios do domínio:** As regras do domínio podem ser facilmente testáveis e independentes. Aplicação limpa encapsula-los de maneira adequada e evita acoplamentos desnecessários. A Clean Architecture separa o código em naves (com os nossos testáveis objetos reais) que contêm a lógica do domínio e as camadas (códigos dos detalhes da infraestrutura como bases de dados, frameworks, I / O e outros) responsáveis pelo transporte e execução das mensagens entre naves.
**Comunicações externas:** Comunicações externas que fornecem ou recebem a entrada / saída de dados de nossos sistemas devem ser claras, rápidas e seguras (assíncronas). Eles são independentes do domínio e encapsulam em camadas responsáveis por transportar os dados e transformá-los em formas legíveis e acessíveis para nossos componentes.
**Configuração e implantação:** Devem ser otimizadas e automatizadas o máximo possível de maneira que elas não poluem o restante do código ou sejam necessárias para execução de testes.
**Frameworks, bibliotecas e tecnologias específicas:** Estes componentes são importantes para facilitar o desenvolvimento e manutenção, mas também devem ser isolados e separados do código do domínio em camadas comunicadas por meio da clean arquitecture. Eles podem ser alterados sem afetar o núcleo das naves.
Principais componentes da Clean Architecture são:
- Aplicação limpa que tem como principal objetivo encapsular o domínio e aplicá-las em projetos que façam sentido para ele. Estes projetos, com os testáveis objetos reais do código (nações), devem ser altamente independentes de frameworks ou outras tecnologias específicas do .NET, mas encapsularem o máximo possível das informações necessárias para executar o domínio.
- A camada Infraestrutura, que tem como principal objetivo facilitar a configuração e implantação de componentes em um ambiente .NET específico ou em nuvens públicas / privadas / híbridas, sem interferir no funcionamento do domínio do aplicativo limpo. Esta camada tem como base o uso e a integração adequada dos frameworks mais pertinentes e relevantes para nossos sistemas que, quando corretamente integrados, encapsulam de maneira fácil os detalhes do transporte / execução das mensagens (dados) entre os componentes que compõem o nosso aplicativo limpo.
Aprenda a aplicar os princípios da Clean Architecture em seus projetos de software solto, com dicas e truques para otimizar sua arquitetura. Descubra como alavancar o potencial de seu projeto e aumentar a qualidade do código no blog "Daves Tecnologia".
Referências: Clean Architecture, Princípios, Software Solto, Arquitetura, Projeto, DDD, SOLID, Dependency Injection, Design Patterns, Código Limpo, DDD, SOLID, Dependency Injection, Design Patterns, Código Limpo
Clean Architecture
Clean Architecture é um modelo de arquitetura de software que organiza o código em camadas independentes, separando regras de negócio de detalhes externos como banco de dados, interface e frameworks, tornando o sistema mais flexível, testável e fácil de manter.
