Arquitectura limpa

A arquitectura limpa é uma filosofia de design de software que separa os elementos de um design em níveis em anel. Um objectivo importante da arquitectura limpa é fornecer aos programadores uma forma de organizar o código de tal forma que encapsule a lógica de negócio mas o mantenha separado do mecanismo de entrega. 

A regra principal da arquitectura limpa é que as dependências do código só se podem mover dos níveis externos para dentro. O código nas camadas internas não pode ter conhecimento de funções nas camadas externas. As variáveis, funções e classes (quaisquer entidades) que existem nas camadas externas não podem ser mencionadas nos níveis mais internos. É recomendado que os formatos de dados também fiquem separados entre os níveis.

Clean architecture foi criado por Robert C. Martin e promovido em seu blog, Uncle Bob. Como outras filosofias de design de software, a arquitetura limpa tenta fornecer uma metodologia econômica que facilita o desenvolvimento de código de qualidade que terá um melhor desempenho, é mais fácil de mudar e tem menos dependências.

Visualmente, os níveis da arquitetura limpa são organizados em um número não especificado de anéis. Os níveis externos dos anéis são mecanismos de níveis mais baixos e os níveis internos, mais altos contêm políticas e entidades.

Aqui está um exemplo de como os anéis podem ser usados para mapear dependências. Arquitetura limpa