MVC
Introdução
• Desenvolvido em 1971 para softwares. Na época estava em desenvolvimento aplicações em smalltalk – Linguagem pai da OO.
• É descrito como uma arquitetura. Combina vários padrões de projeto.• Foi proposto conforme o crescimento dos programas da época.• É a melhor opção de arquitetura para o desenvolvimento web principalmente por
parecer com o modelo “frontend - backend”.• O projeto ficará melhor estruturado devido a granularidade proposta pelo mvc.• Provê maior aproveitamento de código.• Melhora a escalabilidade do projeto desenvolvido.• KISS, DRY, RESTFul• Maior facilidade em implementação de testes unitários.
Diagrama básico
Controller
View Model
Padrões comuns em FW
Controller
View Model
ORM
Componentes Bibliotecas
Helpers DBDriver
File Engine
...
Padrões comuns em FW Web
Controller
View Model
ORM
Componentes Bibliotecas
Helpers DB Driver
File Engine
...
Dis
patc
her
Client
Route Engine
Routing...
Requisição
Static Bypass
Controller Método View Render...
Dispatcher
Erros Comuns
• Quebra de arquitetura / padrão– NÃO FAÇA ACESSO A DADOS PELA CAMADA DE CONTROLE - O acesso direto base de dados
deverá sempre ser feito pelo Model, ou ainda, se houver outro framework por trás do model, deverá ser usado.
– Lógica de negócios em Views ou Helpers: pode Arnaldo?
• Redundância de código– Use as ferramentas do framework, elas já foram (na maioria dos casos) bem testadas pela
comunidade.– Não faça uma coisa duas vezes. Se for o caso, crie um componente ou helper.– Tente fazer componentes gerais e os extenda quando necessário. Sabe herança e polimorfismo?
• Código Motherfucker– Não deixe os interfaces malucos, use helpers quando há código nas views.– Tente deixar os helpers e os mini códigos da view “produtor like”– Não faça de seu método do controller um macarrão.– Usar frenéticamente as idéias de não redundância.
O Problema da Metade do Caminho
O Caminho Feliz!
Projetos Pequenos também precisam de Frameworks e MVC!
– Até projeto pequeno fica ruim de dar manutenção dependendo do fédaputa que desenvolveu.
– Projetos pequenos costumam aceitar milhares de puxadinhos.– Facilidade em configuração de otimizações para SEO devido a
view ser renderizada no final do processo.– Facilidade de implementar boas práticas de front end.– Os Route Engines já implementam url amigáveis.– Validação server side de formulários automática.– Erros banais que podem ser evitados com as ferramentas
existentes:• Falhas de codificação• Sanitização• Problemas gerados por concorrência na base de dados
Top Related