Article image
Pablo Cunha
Pablo Cunha24/02/2023 14:29
Compartilhe

Padrões de Projetos - Arquitetura Multicamadas

  • #Java

Você já ouviu falar de padrões de projetos? Ou Arquitetura de Software? Bom, se não ouviu tenho que te contar que existem diversos tipos diferentes de padrões que podem ser explorados. O que pretendo escrever hoje é sobre a Arquitetura Multicamadas.

A arquitetura multicamadas, é um padrão de projeto que como o próprio nome indica, é baseado na separação de processos em unidades, ou camadas. Uma camada é uma unidade conceitual e lógica que cumpre uma função específica no aplicativo. Por exemplo, podemos ter uma camada dedicada exclusivamente à lógica de apresentação. Essa camada envolveria tudo relacionado à parte visual do aplicativo, e o que não esteja vinculado a essa unidade lógica deve ser incluído em outra camada.

Dado que pode ser implementado com 2, 3 ou mais camadas, é comum referir-se a esse padrão de projeto como arquitetura de N camadas, para agrupar de modo geral todas as suas versões possíveis. Apesar das diferentes versões, podemos encontrar 3 camadas frequentes em um aplicativo com arquitetura multicamadas.

1º - A camada de apresentação, que inclui todas as partes do aplicativo relacionadas à apresentação visual, interação e exibição de informações ao usuário. Aqui, podemos encontrar frameworks de front-end, interfaces gráficas e aplicativos móveis.

2º - A camada de negócios, também denominada “middle-tier” ou camada intermediária, que deve realizar as tarefas, cálculos e processos exigidos pela camada de apresentação. Aqui, encontramos o código de programação em diferentes linguagens ou serviços em nuvem como o Lambda.

3º - Terceiro, a camada de dados, em que as informações geradas pelos processos do aplicativo são armazenadas e os dados atualizados são implementados. É aqui que os bancos de dados do sistema entram em cena.


Um exemplo muito comum de arquitetura de 3 camadas é o MEAN stack ou MERN stack. MERN é um acrônimo que envolve as 4 tecnologias usadas na criação de um aplicativo. O M faz referência ao MongoDB, um tipo de banco de dados não relacional. O E quer dizer Express, um FrameWork utilizado no desenvolvimento back-end. O R refere-se ao React, uma biblioteca JavaScript para gerenciar aplicativos web, e o N significa Node.js, um servidor que também é baseado em JavaScript. Portanto, no aplicativo, a separação por camadas ficaria assim: a camada de apresentação caberia ao React, que gerencia a interface do usuário. A camada de negócios, ou camada intermediária, é administrada pelo Express, através de uma API Rest com Node.js. Por fim, a camada de dados corresponde ao MongoDB. Nesse aplicativo, os dados produzidos pelo React na camada de apresentação são transferidos para a API Rest da camada de negócios e armazenados no MongoDB. O React não pode acessar os dados do MongoDB diretamente. Por sua vez, o MongoDB não tem contato com o React. Isso cria um sistema claro de camadas lógicas isoladas umas das outras.

As vantagens desse padrão são que, ao manter as camadas tão separadas, é relativamente fácil executar testes de unidade, e a ocorrência de erros diminui ao evitar que um problema em uma camada afete as outras. A arquitetura multicamadas é muito fácil de desenvolver, pois a maioria dos programadores está familiarizada com seus conceitos. Porém, ela tende a gerar problemas em situações que exigem um desempenho muito alto, e, às vezes, sua estrutura complexa é difícil de escalar na nuvem.

Compartilhe
Comentários (0)