arquitetura-clean-hexagonal-caso-pratico-1
Arquitetura Clean Hexagonal: Caso Prático

Arquitetura Clean Hexagonal: Caso Prático

Este artigo é uma extensão do artigo teórico Componentes do Software Empresarial, que retrata a combinação dos conceitos de design de software, nomeadamente a Hexagonal Architecture e Clean Architecture. É necessário ler o artigo anterior para perceber os conceitos aqui aplicados, e os objetivos pretendidos. Desta vez focaremos essencialmente nas questões práticas, ou seja na implementação do design apresentado anteriormente. Proposta de Design O diagrama seguinte resulta de uma combinação dos ensinamentos das arquiteturas Hexagonal e Clean; e representa em detalhe o design pretendido para o nosso software. Este diagrama identifica de forma geral, simples e direta, todas as camadas do design, e as suas responsabilidades: Entities (ou domain) — Contém as regras principais do negócio. Use cases (ou application) — Contém as regras de orquestração ou as operações princiais da aplicação. Adaptadores de interface — Fazem a intermediação da aplicação com o mundo exterior (a infraestrutura). Infraestrutura (Frameworks, drivers) — O mundo externo, que podem ser aplicações, serviços, bibliotecas, APIs… Os entities e os use cases constituem o núcleo (core) da aplicação, a componente central da arquitetura (o hexágono) e o responsável por encapsular toda a lógica do negócio. A Perspectiva Hexagonal Na perspectiva da arquitetura Hexagonal a aplicação deve ser capaz de: Suportar várias tecnologias (base de dados, message brokers, serviços de emails, etc) Ser testado sem ter todas as tecnologias definidas Ser desenvolvida sem ter todas as tecnologias definidas A arquitetura (Hexagonal) possui dois lados essenciais: Lado esquerdo ou lado de user interface — direcionado aos utilizadores e às aplicações clientes. Possibilitado pelos Driving Adapters. Estes utilizarão a aplicação. Lado direito ou lado de data and service providers — direcionado para o acesso de dados e serviços. Possibilitado pelos Driven Adapters. Estes serão utilizados pela aplicação.

Compartilhar