#3 Clean Architecture – Application Layer

Depois de termos conhecido e criado juntos a camada Domain neste post, neste vídeo vamos criar a Camada Application e já começar a projetar nosso primeiro UseCase, o ExportRegistration.

Definação do Autor

O software da camada de casos de uso contém as regras de negócio específicas da aplicação. Ele reúne e implementa todos os casos de uso do sistema. Esses casos de uso orquestram o fluxo de dados para e a partir das entidades e orientam essas entidades na aplicação das Regras Cruciais de Negócios a fim de atingir os objetivos do caso de uso.

Não queremos que as mudanças nessa camada afetem as entidades. Também não queremos que essa camada seja afetada por mudanças em externalidades como a base de dados, a UI ou qualquer framework comum. A camada de casos de uso deve ser isolada dessas preocupações. Contudo, esperamos que mudanças na operação da aplicação afetem os casos de uso e, portanto, o software dessa camada.

Fonte: Clean Architecture Book (Página 204)

Minhas decisões

Na arquitetura que montei os use cases são separados por suas respectivas pastas e devem ter pelo menos 3 classes:

NomeDoUseCase.php: classe principal onde será implementado o caso de uso;
InputBoundary.php ou InputData: um DTO que representa os dados que serão passados para o caso de uso;
OutputBoundary.php ou OutputData: um DTO que representa os dados de saída que o caso de uso deverá retornar

Dentro dessa camada também terá os contratos necessários para que as camadas mais externas possam se comunicar com esta.

Reforçando que quase todas as informações que utilizei nesses estudos eu extrai do livro Arquitetura Limpa do Uncle Bob, se tiver interesse de conhecer livro, compra com meu link da Amazon =)

Vídeo Aula

Depois de você ter lido a definição dessa camada direto da fonte, agora você poderá assistir a vídeo aula onde faço do absoluto zero a criação da camada Application que é chamada de Use Cases no desenho da Clean Architecture.

Qualquer dúvida, sugestão, crítica ou qualquer sentimento que você tiver, por favor, não deixa de colocar teu comentário aqui no post.

Forte abraço.

Link Repositório: https://github.com/dersonsena/clean-arch-youtube