Monday, April 27, 2015

Arquitetura de Sistemas x Design Pattern TI





É comum as pessoas dizerem que se utilizarem um design

pattern a aplicação estará separada em camadas, como é normal

ouvir quando as pessoas falam de MVC. Mas será que design

pattern não está sendo confundido com arquitetura de sistemas?



Um sistema multicamadas é quando as partes de um sistema estão

separadas fisicamente. Por exemplo: em um sistema de 3

camadas a separação seria entre a
"Regra de negócio: um desafio para o desenvolvedor" href=

"http://www.profissionaisti.com.br/2012/12/regra-de-negocio-um-desafio-para-o-desenvolvedor/">

regra de negócio em um servidor, o banco de dados em

outro e a apresentação em outro. Já

"O conceito e as dúvidas sobre o MVC" href=

"http://www.profissionaisti.com.br/2014/10/o-conceito-e-as-duvidas-sobre-o-mvc/">

o MVC é um design pattern, ou padrão de projeto, que é

utilizado para organizar a aplicação em camadas lógicas para

facilitar a manutenção de um sistema, ou seja, o sistema

é dividido em diversos pacotes dentro de uma mesma solução

para que o desenvolvimento do mesmo seja melhor

interpretado.




Muitas vezes esses assuntos se confundem porque para se ter um

sistema multicamadas, é quase que obrigatório utilizar um

design pattern para fazer a separação lógica do código e depois

a separação física, mas para utilizar um design pattern não é

necessário ter uma arquitetura multicamadas. O MVC, design

pattern criado na década de 70, ainda é um dos mais utilizados

nas aplicações atualmente devido a sua flexibilidade, pois

pode integrar-se com as diversas linguagens de programação:

ASP.Net, Java, C#, Python, Ruby on Rails, entre outras.



As vantagens de utilizar uma arquitetura multicamadas

em seu projeto são as seguintes:


  • A aplicação se torna mais independente, pois é possível dar

    manutenção em apenas uma camada sem afetar as demais;

  • Garantir a maior segurança do código da aplicação, uma vez

    que cada camada (servidor) terá um tipo de segurança diferente;

  • Economia de licenças de software (por exemplo banco de

    dados), pois uma camada de banco de dados poderá ser

    compartilhada com diversos usuários / aplicações;


O desenvolvimento visando a arquitetura multicamadas é

uma boa prática, mas cada caso é um caso. Existem cenários que

não é vantajoso utilizá-lo:


  • Quando é um sistema pequeno que não exige muita segurança

    devido a sua utilização, a arquitetura multicamadas deixará o

    projeto mais complexo sem necessidade;

  • Quando não se deseja fazer reutilização dos componentes de

    uma aplicação, a complexidade do projeto também será alta sem

    necessidade.


Quando você for desenvolver um novo projeto e já definir que

ele terá uma arquitetura multicamadas, primeiro análise os

requisitos e a complexidade do projeto para depois chegar na

conclusão de utilizar ou não a arquitetura multicamadas. Cada

aplicação tem uma necessidade e toda satisfação da necessidade

gera um custo, garantindo a qualidade e a segurança definida

pelo cliente (interno/externo) que solicitou o projeto.




0 comments:

Post a Comment