Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Dúvidas sobre equivalência entre a arquitetura limpa e hexagonal com a apresentada no curso.

Estas 4 perguntas são para saber onde os exemplos dados no curso se encaixariam na arquitetura limpa ou hexagonal.

  • Onde se encaixaria as implementações RepositorioDeAluno (RepositorioDeAlunoPDO e RepositorioDeAlunoMemoria)

  • Onde se encaixaria a interface Repositorio (RepositorioDeAlunoInterface)

  • Onde se encaixaria as implementações do Cifrador de senha (CifradorDeSenhaPHP e CifradorDeSenhaMD5)

  • Onde se encaixaria a interface do Cifrador de senha (CifradorDeSenhaInterface)

Nesta arquitetura criada no curso (que pega o melhor da hexagonal e da limpa), tenho as seguintes duvidas:

  • O que seria equivalente aos adapters e as portas na arquitetura do curso?

  • Na arquitetura tem a camada de aplicação (onde fica o EnviarEmailIndicacao.php), qual seria a camada equivalente na hexagonal?

  • Aproveitando a pergunta anterior, qual seria o equivalente ao Driving side e ao Driven side da hexagonal?

  • A implementação da interface EnviarEmailIndicacao.php seria considerado oq na arquitetura limpa e hexagonal?

  • Os DTOs, na arquitetura limpa, faria parte do Interface Adapters (Controller/Gateway/Presenters) ? Ja na hexagonal, onde se encaixaria os DTOs?

1 resposta
solução!

Oi Rafael, tudo bem?

Entendo que você esteja com dúvidas sobre a equivalência entre a arquitetura limpa e hexagonal com a apresentada no curso. Vou tentar te ajudar com cada uma das perguntas que você fez.

  1. As implementações RepositorioDeAlunoPDO e RepositorioDeAlunoMemoria se encaixariam na camada de infraestrutura da arquitetura limpa. Já a interface RepositorioDeAlunoInterface seria parte da camada de domínio.

  2. As implementações do Cifrador de senha, CifradorDeSenhaPHP e CifradorDeSenhaMD5, também fariam parte da camada de infraestrutura na arquitetura limpa. A interface CifradorDeSenhaInterface estaria na camada de domínio.

  3. Na arquitetura do curso, os adapters seriam equivalentes às implementações das interfaces na arquitetura limpa. Já as portas seriam equivalentes às interfaces em si.

  4. Na arquitetura hexagonal, a camada equivalente à camada de aplicação seria a camada de aplicação também. Ela é responsável por orquestrar os casos de uso e interagir com as interfaces (portas) da aplicação.

  5. O "Driving side" da arquitetura hexagonal seria equivalente à camada de aplicação na arquitetura do curso. Já o "Driven side" seria equivalente às interfaces (portas) da aplicação.

  6. A implementação da interface EnviarEmailIndicacao.php seria considerada uma implementação de caso de uso na arquitetura limpa e uma implementação de porta (interface) na arquitetura hexagonal.

  7. Os DTOs na arquitetura limpa fariam parte da camada de Interface Adapters (Controller/Gateway/Presenters). Já na arquitetura hexagonal, os DTOs poderiam ser utilizados tanto na camada de aplicação quanto na camada de infraestrutura, dependendo da necessidade.

Espero ter ajudado a esclarecer suas dúvidas.

Um abraço e bons estudos.