Photo by Ilnur Kalimullin on Unsplash

Fala pessoal! Neste post vamos abordar o desenvolvimento de uma aplicação na abordagem tradicional e, logo em seguida, quais seriam as diferenças desta para a arquitetura hexagonal. No fim, iremos discutir se algumas abordagens aplicadas valem a pena e quais possíveis casos de aplicação desta arquitetura.

Se você ainda não está muito familiarizado com os conceitos hexagonais, sugiro ir no post anterior (Parte 1) e, logo em seguida, voltar para cá.

Este tutorial será feito em SpringBoot + Kotlin. Caso goste de uma abordagem relacionada ao NodeJS, recomendo ver o tutorial do Guerreiro Programador.

A Aplicação

Imagine que alguns consoles não sejam…


Photo by James Hon on Unsplash

Arquitetura de software sempre é um assunto que dá muito pano pra manga. Para alinhar conceitos rígidos à entregas apertadas com clientes que mudam requisitos todos os dias é preciso ter muito jogo de cintura.

Alguns conceitos já estão batidos como “use camadas de controle, serviço, domínio e repositório”. Um projeto com uma lógica toda implementada na camada web/apresentação por exemplo já dá calafrios em devs mais experientes ou em líderes de projeto que conduzem uma entrevista. Porém, existem mais padrões que podem deixar o código “mais limpo”.

Um destes padrões é chamado de “ports and adapters”, mas fica mais…


Fonte: Unsplash

Quando utilizamos Spring, a validação dos dados passados ao Controller é feita de forma direta. A biblioteca javax.validation nos dá várias opções para evitar que um objeto venha com dados inconsistentes como, por exemplo, uma data de nascimento após a data atual ou um atributo obrigatório passado como nulo.

A forma de implementar a validação é bastante conhecida para os javeiros. Porém, quando começamos a nos aventurar no Kotlin, algumas peculiaridades podem acontecer. Por isso, esse post tem como principal objetivo ajudar a quem está iniciando Kotlin ou está tentando converter (nem sempre diretamente) os códigos Java em Kotlin.

Tá, e qual seria a diferença?

Aqui…


Uma abordagem mais intuitiva para quem deseja manter uma infraestrutura com servidor de configuração centralizado

Em uma arquitetura baseada em microsserviços, desacoplar os componentes de uma aplicação é fundamental para facilitar, por exemplo, a adição de novas funcionalidades e a escalabilidade da solução. Desse modo, ao contrário de estruturas monolíticas, os serviços são separados por funcionalidades, cada qual com um acesso à sua base de dados específica.

Um outro aspecto da aplicação, as configurações, pode ser migrado para um servidor centralizado. Esta alternativa traz dois benefícios: a responsabilidade da configuração em um serviço ao invés da aplicação e a possibilidade de gerenciar essas configurações de modo independente, oferecendo redundância quando necessário.

A partir desta análise…

Demis Gomes

Mestre em Ciência da Computação (CIn/UFPE). Atualmente, é Engenheiro de Software. Gosta também de um bom futebol, F1, Star Wars, brega e doce de leite.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store