Pular para o conteúdo
Código e Café com PauloDev: Explorando o Universo da Programação

Código e Café com PauloDev: Explorando o Universo da Programação

Explore o universo da programação e tecnologia com PauloDev. Descubra insights, tutoriais e inovações que moldam o futuro digital. De linhas de código a ideias revolucionárias, embarque nesta jornada tech onde a paixão pela inovação se encontra com a expertise do desenvolvimento. Seja bem-vindo ao blog que transforma códigos em narrativas de vanguarda, guiado pela visão única de PauloDev no vasto panorama tecnológico.

  • Meu portifolio

Ports and Adapter – Um conceito da hexagonal architecture

7 de julho de 2024
Por Paulo In Boas Práticas

Ports and Adapter – Um conceito da hexagonal architecture

Provavelmente, se você já estudou sobre a Arquitetura Hexagonal, deve ter se deparado com o conceito de “Ports” e “Adapters”, que são partes importantes para o funcionamento e compreensão dessa arquitetura.

Primeiramente, caso você não conheça, a Arquitetura Hexagonal é uma arquitetura utilizada para desenvolver e projetar sistemas de software. Seu principal objetivo é delegar a infraestrutura e a interface do usuário (UI) como parte do projeto, permitindo que você se concentre na regra de negócio e a torne funcional, além de não misturá-la com outras partes, como regras de banco de dados ou até mesmo com a UI do projeto.

“Crie sua aplicação para trabalhar sem uma UI ou banco de dados, ao qual você pode executar testes automáticos de regressão, implementar quando o banco de dados não estiver disponível e conectar aplicações sem envolvê-las.” (Alistair Cockburn)

Nessa arquitetura, o termo “Port” refere-se às interfaces usadas para comunicação com as classes do domínio. Temos dois tipos de portas, que são:

  1. Portas de entrada: São as interfaces usadas na comunicação de fora para dentro, ou seja, quando uma classe externa precisa chamar um método de uma classe do nosso domínio. Essas portas declaram os serviços providos pelo sistema, serviços que o sistema oferece para o mundo exterior.
  2. Portas de saída: Assim como as de entrada, também são interfaces, contudo, sua comunicação é de dentro para fora, isto é, quando uma classe de domínio precisa chamar um método de uma classe externa. Essas portas declaram os serviços requeridos pelo sistema, serviços do mundo exterior que são necessários para o funcionamento do sistema, como um simples manipulador de e-mails, por exemplo.

É importante ter em mente que as “Ports” são independentes de tecnologia. Portanto, elas estão localizadas no hexágono interior. Em contrapartida, os sistemas externos, na maioria dos casos, utilizam algum tipo específico de tecnologia, seja de comunicação (REST, GraphQL) ou banco de dados (SQLServer, SQLite, MySQL).

Daí surge a necessidade de componentes localizados no hexágono mais externo da arquitetura, os “Adapters”, cuja finalidade é atuar das seguintes maneiras:

  • Eles recebem chamadas de métodos vindos de fora do sistema e encaminham essas chamadas para métodos adequados das portas de entrada. Como um tradutor, que traduz o que foi dito para uma pessoa de forma que ela possa entender.
  • Eles recebem chamadas vindas de dentro do sistema, isto é, das classes de domínio, e as direcionam para um sistema externo, como bancos de dados, outro sistema da organização ou mesmo sistemas de terceiros.
Promoção
Written by:

Paulo

Ver todos os posts

Categorias

  • Android
  • Android Studio
  • Angular
  • API
  • AWS
  • Back-end
  • Bash
  • Boas Práticas
  • CSharp
  • CSS
  • Django
  • Docker
  • Electron
  • Front-end
  • Git
  • Github
  • Html
  • Http
  • Java
  • JavaScript
  • Laravel
  • Linha de comando
  • Linux
  • Machine Learning
  • Metodologias
  • Mysql
  • Node
  • NoSql
  • PHP
  • Power Shell
  • Python
  • Segurança
  • Sem categoria
  • SQL
  • Tecnologia
  • Testes
  • VueJs
  • Windows

Últimos posts

  • Python para o desenvolvimento Web: Como o Django pode alavancar na escrita do seu código
  • Conheça as Transactions e como elas podem te ajudar a testar o seu sistema
  • Melhorando a performance dos seus projetos PHP, conheça o OPCache e o JIT
  • Redis com Laravel: Uma ferramenta poderosa para o escalonamento horizontal da sua aplicação
  • Conhecendo e configurando um servidor de Load Balance com YARP e NGINX

© Todos os direitos reservados PauloDev 2023