DEV Community

Cover image for Outros 3 Padrões de Arquitetura de Software Simplificados e Exemplificados
Vinicius Savegnago
Vinicius Savegnago

Posted on

2

Outros 3 Padrões de Arquitetura de Software Simplificados e Exemplificados

Hoje eu trago outros três padrões bem comuns de arquitetura de software para explorarmos. Todos criados para atender necessidades específicas e tornar o desenvolvimento de software mais eficiente e fácil.

1. Arquitetura em Camadas

A arquitetura de software em camadas é uma estrutura que divide o software em diferentes camadas, cada uma com sua própria responsabilidade e finalidade. Cada camada depende das camadas abaixo dela, mas não depende das camadas acima. Isso cria uma estrutura em forma de "pirâmide", onde cada camada é construída sobre as camadas anteriores e fornece suporte para as camadas superiores.

  1. Camada de Apresentação (UI)

    • Responsável por apresentar as informações para o usuário final.
  2. Camada de Aplicação

    • Responsável por lidar com as regras de negócio e os processos de negócio da aplicação.
  3. Camada de Domínio

    • Responsável por armazenar e recuperar informações.
  4. Camada de Infraestrutura

    • Responsável pelas informações no banco de dados.

Image description

Vantagens

  • Fácil de entender e de se aplicar.
  • Cada camada tem sua própria finalidade distinta, sendo mais fácil manter o software e realizar mudanças ou atualizações.

Desvantagens

  • Escalabilidade é complicado pois a estrutura não permite fácil crescimento.
  • Existe uma certa dependência entre as camadas da estrutura.

Exemplo em um cenário real

Um sistema de E-commerce:

  1. Camada de Interface:
    • Essa será a interface do usuário, permitindo que os clientes visualizem produtos e façam compras.
  2. Camada de Aplicação:
    • Aqui funciona a lógica de negócios, como cálculo de preços, gerenciamento de estoque e processamento de pagamentos.
  3. Camada de Domínio:
    • Recupera informações relevantes do sistema, como informações do produto ou histórico de compras.
  4. Infraestrutura:
    • Um servidor rodando PostgreSQL com os dados necessários para o funcionamento do E-commerce.

2. Padrão Broker

Broker é uma arquitetura de sistemas distribuídos em que um componente intermediário, chamado de broker, atua como uma peça entre diferentes componentes distribuídos. O broker por sua vez, é responsável por receber mensagens enviadas por um componente e encaminhá-las para o componente apropriado.

Image description

Vantagens

  • Permite que componentes diferentes possam ser adicionados ou removidos do sistema sem afetar o restante dos componentes.
  • Pode ser tolerante a falhas, ou seja se um componente falhar, o broker pode redirecionar as mensagens para um componente de backup ou tomar outras medidas para garantir que o sistema continue funcionando.

Desvantagens

  • A adição de um componente intermediário pode aumentar a complexidade do sistema.
  • A arquitetura de software Broker pode ter um impacto negativo no desempenho do sistema.

Exemplo em um cenário real

Chat online:

O broker atua como um intermediário para rotear mensagens de chat entre usuários. Quando um usuário envia uma mensagem para outro, a mensagem é enviada para o broker, que a encaminha para o destinatário correto.

Também pode ter a capacidade de armazenar mensagens offline e coordenar a entrega de mensagens quando o destinatário estiver online novamente, garantindo que as mensagens não sejam perdidas.

3. Arquitetura Peer-to-peer

Arquitetura distribuída em que os componentes têm capacidade tanto de fornecer quanto de consumir recursos. Cada componente da rede P2P é chamado de peer, e eles se comunicam entre si diretamente, sem a necessidade de um servidor central para coordenar as comunicações.

Image description

Vantagens

  • Cada dispositivo é considerado um nó e pode participar das atividades da rede, o que significa que a rede pode crescer sem um limite de tamanho.
  • Não há necessidade de um servidor central que controle a rede.

Desvantagens

  • Confiabilidade da rede depende da disponibilidade e da qualidade dos dispositivos individuais na rede.
  • O tráfego de dados é compartilhado entre os dispositivos na rede, o que pode resultar em uma largura de banda insuficiente.

Exemplo em um cenário real

BitTorrent:

Nesta rede, os usuários podem baixar e compartilhar arquivos diretamente entre si, sem a necessidade de um servidor central. Cada usuário é considerado um nó na rede e pode fornecer e obter arquivos de outros usuários. Dessa forma, a rede é capaz de lidar com uma grande quantidade de tráfego de dados, pois cada usuário contribui para o compartilhamento dos arquivos.

Finalizando...

Este foram outros três padrões que temos na arquitetura de software, trarei mais num futuro próximo.

Espero que isso ajude você de alguma maneira! 😄

Happy Coding!

Links úteis:
Broker Pattern
Arquitetura em camadas
Peer-to-peer

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

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

Okay