DEV Community

Yuri Peixinho
Yuri Peixinho

Posted on

Arquitetura em Camadas (Layered architecture)

A arquitetura em camadas, também conhecida como layered architecture é uma abordagem pra estruturar o sistema dividindo em diferentes níveis de abstrações (camadas), cada uma com responsabilidades específicas. Essa prática ajuda a isolar responsabilidades, facilita a manutenção e escalabilidade.

Como as camadas funcionam?

Cada camada se concentra em um aspecto do sistema. Cada camada oferece serviços à camada imediatamente superior e consome serviços da camada inferior. A separação é baseada em responsabilidades, garantindo que mudanças em uma camada tenham impacto mínimo nas outras.

Topologia

Image description

Existem diversas variações dessa topologia (por exemplo com uma camada de serviço ou agrupamentos de camadas em módulos), ou seja, mais ou menos camadas existirão.

Cada uma das camadas tem uma função ou responsabilidade específica dentro da arquitetura, por exemplo:

  • Apresentação: Lida com toda interface do usuário e lógicas de comunicação com navegadores.
  • Negócio: Executa operações e fluxos de negócios específicos associados à uma requisição
  • Persistência: Persistir ou recuperar informações salvas em alguma unidade de armazenamento
  • Banco de dados: responsável por mantes os dados de forma física.

Cada camada forma uma abstração em volta de sua necessidade e trabalho a ser realizado dentro de uma requisição em particular. Além disso, barreiras devem existir de forma implícita entre elas. Como assim? A camada de apresentação não deveria saber ou se preocupar em como recuperar informações de um cliente ou produto (o mesmo aplica-se para as demais camadas presentes na arquitetura)

Variações do Modelo

Camada Fechada

Seguem uma hierarquia rígida, onde cada camada acessa apenas a camada diretamente inferior

Image description

Repare que nesse exemplo acima, como todas as camadas estão fechadas o fluxo deve ocorrer exatamente da forma em que elas foram definidas e posicionadas hierarquicamente.

Camada Aberta

Permitem que uma camada acesse qualquer camada abaixo dela, favorecendo a flexibilidade me alguma situações.

Image description

Já nesse outro exemplo, podemos ver uma variação com uma nova camada. A camada de serviço. Ao observar, podemos ver que a camada de serviço está marcada como aberta. Isso quer dizer que ela não é obrigatória em todas as requisições ou fluxos.

  1. A camada de apresentação fala com a camada de negócio
  2. A camada de negócio fala com a camada de serviço ou persistência
  3. A camada de serviço fala com a camada de persistência
  4. A camada de persistência fala com a camada do bando de dados

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

While many AI coding tools operate as simple command-response systems, Qodo Gen 1.0 represents the next generation: autonomous, multi-step problem-solving agents that work alongside you.

Read full post →

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay