GoConqr hat ein neues Design! Sag uns, wie es dir gefällt.

Mindmap

Layers (camadas)

Heithor Urquiza Silva Portugiesisch

Inhalt der Mindmap

Layers (camadas)

  1. Definição

    • Os componentes de uma Layered Architecture são organizados em camadas horizontais onde cada uma desempenha um papel específico na aplicação. Embora o padrão não especifique a quantidade e os tipos de camadas, a maioria segue a seguinte organização: apresentação, negócios, persistência e banco de dados. Cada camada dentro da arquitetura possui um papel e uma responsabilidade dentro da aplicação. Em resumo, uma das principais características deste padrão de projeto está na separação de responsabilidades. Componentes dentro de uma camada lidam apenas com as particularidades daquela camada. E este modelo de organização facilita o processo de construção, testes e manutenção dos seus elementos.
  2. Conceitos Principais

    • * Camada Fechada: Uma requisição enviada para uma camada deve seguir para a camada imediatamente posterior. Por exemplo, uma requisição feita na camada de apresentação deve seguir primeiro para a camada de negócios, depois para a camada de persistência para finalmente acessar a camada de banco de dados.
    • * Isolamento de Camadas: Outro conceito importante consiste no isolamento de camadas. Clarificando, Isolamento significa que mudanças em uma camada não deveriam impactar as camadas mais distantes. O poder deste conceito reside no fato de que caso não haja mudança no contrato entre as camadas, modificações nos componentes de uma camada não geram impacto em outra.
    • * Abertura de Camadas: Ao contrário das camadas "fechadas", a abertura de camadas permite com que uma camada em especifico possa ser ignorada em algumas situações específicas. Por exemplo, pelo fato da camada de serviços estar logo abaixo da camada de negócios leva a falsa impressão de que o acesso a camada de persistência será feito através da camada de serviços, quando na verdade essa pode ser ignorada case esteja "aberta". Definir quais camadas dentro da arquitetura são “fechadas” ou “abertas” ajuda a clarificar os relacionamentos entre elas.
  3. Observação

    • Dentre os diversos padrões de projeto existentes, a arquitetura em camadas é um bom ponto de partida, principalmente em cenários onde não há certeza de qual padrão utilizar. Contudo, há uma série de considerações a serem avaliadas do ponto de vista de arquitetura como a existência do anti-padrão “sinkhole”, por exemplo. Outro ponto é que a arquitetura em camadas tende direcionar a construção de sistemas monolíticos, mesmo quando os componentes são separadas em unidades de instalação diferentes. Entretanto, dependendo do tamanho, a aplicação pode sofrer impacto negativo em atributos relacionados a robustez, performance, escalabilidade e facilidade de instalação.
  4. Pontos Fortes e Fracos

    • * Agilidade Geral (Baixa): Ainda que as camadas estejam isoladas, realizar mudanças são demoradas e pesadas, devido a natureza monolítica da solução. Somado a isto, a dificuldade é ampliada com a existência de componentes altamente acoplados.
    • * Facilidade De Implantação (Baixa): Dependendo do tamanho da aplicação, a implantação dos componentes pode ser um problema. Por exemplo, uma pequena mudança em um componente pode exigir o deploy da aplicação inteira, exigindo planejamento prévio e agendamento e execução do mesmo em horários de baixa execução do sistema.
    • * Testabilidade (Alta): A facilidade nos testes é resultado da capacidade de “mockar” componentes de camadas que não pertencem a camada que será testada. Em outras palavras, é possível testar uma regra de negócios sem precisar de uma base de dados funcionando.
    • * Performance (Baixa): A baixa performance é devido em cenários de alto volume não haver paralelismo de execução. Ou seja, cada requisição é obrigado a passar por praticamente todas as camadas para ser atendida.
    • * Escalabilidade (Baixa): Devido a natureza monolítica e a tendência de acoplamento entre os componentes é gerada uma barreira a escalabilidade. Quer dizer, apesar da organização em camadas permitir a separação em componentes isolados, a granularidade entre eles é elevada, limitando ou tornando cara a escalabilidade da aplicação. Por exemplo, uma camada de negócios relacionadas a pedido e cliente, será ampliada como um todo, mesmo que a necessidade seja suportar uma maior consulta de pedidos.
    • * Facilidade De Desenvolvimento (Alta): Este padrão de projeto é amplamente conhecido e relativamente fácil de ser compreendido. Além disto, o “mindset” de desenvolvimento tende a especializar etapas de trabalho ou tecnologias, facilitando a associação com as camadas do projeto.

Informationen

Beschreibung
Mindmap am Layers (camadas), erstellt von Heithor Urquiza Silva am 23/07/2021.
Erstellt von
Heithor Urquiza Silva · Jul 2021
Aktualisiert
23 Jul 2021
Aufrufe
0
Bewertung

Feedback

Worum geht es?

Wie gefällt dir das neue Design?

Dein Eindruck