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.