Julgue os próximos itens, relativos à arquitetura em camadas...
Quanto maior for o número de camadas, menor será o desempenho do software como um todo.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a letra Certa (C).
Vamos entender o motivo dessa escolha e a lógica por trás da afirmação de que quanto maior for o número de camadas, menor será o desempenho do software como um todo.
Arquitetura em camadas é um padrão de design de software que separamos em níveis distintos, cada uma delas com responsabilidades bem definidas. As camadas mais comuns incluem a camada de apresentação (interface do usuário), camada de aplicação (lógica de negócios), camada de dados (acesso a banco de dados) e, às vezes, uma camada de serviços (integração com outros sistemas).
A principal vantagem dessa abordagem é a organização e manutenção do código. Com camadas, conseguimos isolar mudanças em uma parte do sistema sem afetar as demais. Isso facilita o desenvolvimento e a manutenção do software.
No entanto, há um custo de desempenho associado a esse tipo de arquitetura. Cada camada adiciona um nível de abstração e comunicação que precisa ser gerenciado pelo sistema. Mais camadas significam mais chamadas de método, mais processos de transformação de dados, mais verificações de integridade, e assim por diante. Todos esses fatores contribuem para a sobrecarga e podem causar uma redução no desempenho do sistema.
Portanto, a afirmação de que "quanto maior for o número de camadas, menor será o desempenho do software como um todo" está correta. Isso porque a adição de camadas aumenta a complexidade e a sobrecarga operacional, o que impacta diretamente no desempenho.
Vamos agora justificar a alternativa correta e discutir por que as outras seriam incorretas:
Alternativa Certa (C): Aumentar a quantidade de camadas pode introduzir latência adicional e sobrecarga de processamento, resultando na diminuição do desempenho do software. Portanto, essa alternativa está correta.
Alternativa Errada (E): Se fosse marcada como correta, sugeriria que o aumento do número de camadas não afeta ou até melhora o desempenho. Essa ideia está equivocada, pois mais camadas introduzem mais complexidade e mais pontos de processamento, que consequentemente diminuem o desempenho global.
Espero que essa explicação tenha ajudado a entender melhor o conceito e a lógica por trás da arquitetura em camadas e seu impacto no desempenho do software. Se tiver mais alguma dúvida, fique à vontade para perguntar!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Quanto mais camadas mais overhead teremos, isso acontece não só em arquitetura em camadas, mas também, no modelo TCP/IP por exemplo. Na prática, não necessariamente isso vai ocorrer (a degradação do desempenho), mas o que vale é a teoria, então por isso a questão esta certa. Não é bom nem lembrar de Martin Fowler sobre padrões arquiteturais corporativos: "Camadas extras podem prejudicar o desempenho. Em cada camada os dados precisam, tipicamente, ser transformados de uma representação para outra. O encapsulamento de uma função subjacente, no entanto, muitas vezes lhe dá ganhos de eficiência que mais do que compensam esse problema. Uma camada que controla transações pode ser otimizada e entao tornará tudo mais rápido"
Tem algum benchmark que prove isso? Essa afirmação é baseada em quê? Entendo que quando mais camadas mais processamentos, mas, daí a afirmar que quando mais camadas mais lento é um pouco demais!
Helen, como você mesma coloca a citação de Fowler "Camadas extras podem prejudicar o desempenho". A questão é taxativa: "Quanto maior for o número de camadas, menor será o desempenho". Logo, até que se prove (e note que não basta algum autor defender esta tese com base nas sua idéias, ela deve ser provada empiricamente) ser esta uma regra, a banca não pode afirmar.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo