The clean Architecture

Icaro Victor
2 min readMay 18, 2018

--

Introduction

Segundo Uncle Bob uma arquitetura limpa é aquela em que é dividida em camadas bem definidas, e essas camadas devem ter responsabilidades únicas sem comprometer as outras. Cada camada tem uma relação especifica com o software, umas com algum grau de relevância maior do que outras, e devem ser bem estruturadas para que não possa ocorrer possíveis problemas no futuro.

The Dependencie Rule

Cada camada do software é especifica. Camadas mais internas são responsáveis pelo domínio do problema e externas pela infraestrutura. Camadas internas não deve conhecer “coisas” de externas pelo fato que isso prejudica a estrutura lógica do software e consequentemente a sua quebra. O fluxo de controle deve somente ocorrer para dentro, isto é, camadas externas acessam elementos de camadas internas a ela.

Application layer

Camadas mais internas são compostas do mais alto nível de abstração. Elas devem se manter ao longo da vida do software, nunca devem ser afetadas por alguma camada mais externa. Entidades e Casos de Uso ocupam essa camada e se relacionam diretamente entres si. Os casos de Uso são responsáveis por tarefas especificas da aplicação, seu fluxo de controle rodam em torno das entidades. Controllers e presentes são responsáveis por transformar os dados de uma uma camada para outra de uma forma que elas entendam.

Infrastructure Layer

Camada onde contem somente detalhes de implementação. Elementos dessa camada podem ser mudados ao longo da existência da aplicação e não deve afetar camadas mais internas. Elementos como Banco de dados, UI, Frameworks Web residem nessa camada. É usada pela camada de aplicação para poder satisfazer suas logicas.

Conclusion

A realização de uma arquitetura limpa deve ser implantada em toda aplicação existente atualmente. Com divisão de camadas e regras de dependência sendo atendidas o software terá mais usabilidade, flexibilidade e manutenibilidade no futuro.

--

--