entendendo os microframeworks em php
TRANSCRIPT
Entendendo osMicroframeworks
por Felipe [email protected]
Autor
• Felipe A. Bastos Moraes aka<felipebastosweb>
• Graduado em Análise de Sistemas• MBA em Gerenciamento de Projetos• Entusiasta de Desenvolvimento de Software e
Metodologias Ágeis
– Gosta de filmes/seriados que envolvam tecnologia ou investigação científica: Homem de Ferro, House, Bones e DC’s Legends of Tomorrow ;)
Agenda <prevista>• Convite para participação de todos <Retrospectiva>• Desvendar Por Que surgiram os micro frameworks• Entender o Que realmente são eles• Descobrir Onde podem ser usados• Sugerir Quem deve usar• E Quando usar• Arquitetar Como usar• E analisar o impacto• do Custo
Por que eles surgiram?
• PHP é Coisa de Iniciante–Falta de Orientação a Objetos <nos Open Sources>–Falta de Design Patterns
• Aqui não usamos Frameworks–Código Spaguetti–O gargalo do desempenho (Zend e Symfony 1 e 2)–A complexidade da ferramenta–Alto custo de Manutenção–O alto custo da Formação Profissional–Falta de Profissional especializado
Você já ouviu ou pensou isso ...
Você já ouviu ou pensou isso ...
• O “legado do Legado”–Diferentes versões da linguagem–Diferentes versões do framework–Diferentes versões do sistema
• Qual o melhor Framework?–O que tem mais recursos–O que tem a comunidade mais ativa–O que tem melhor desempenho–O mais ágil
• Odisseia da Manutenção–Não sei por onde começar–Qual parte do sistema está derrubando o banco?–Qual parte do sistema está derrubando o servidor?–Vamos parar tudo–Já fizeram backup?
• Como vamos escalar?–Escala o Banco–Escala a Aplicação–Escala o Servidor–Balanceia a Carga
Você já ouviu ou pensou isso ...
Dividir e Conquistar
Micro Frameworks e os MicroServiços
É uma forma particular de conceber APLICAÇÕES de Software como suítes de SERVIÇOS
implementadas de formas INDEPENDENTES.
Martin Fowler e James Lewis
Quão pequeno
pode ser um
Framework?
Sim, uma Classe
Um exemplo de Uso
Todos os Componentes são Versionados e Testados
- Senhor, estou buscando informações.
Seus Serviços terãoPropósitos Específicos
• Você não precisa replicar toda a Aplicação;
• A sua aplicação desempenhará uma tarefa específica;
• A sua aplicação faz melhor aquilo para o qual ela foi projetada;
• É muito mais fácil projetar e dar manutenção em serviços menores.
Vamos Escalar?
Na visão de Fowler e Lewis
Sua Equipe também seráEvolutiva
… E Flexível
Qual Escolher?
• Slim• Ou um Menor
• Silex• Mais Complexo• Mais ...
O SLIM É o mais básico Sua modularização é
fornecida por terceiros REST básico Views
O SILEX Fornece toda
estrutura de ServiceProviders
Tem diversos Providers
Suporta MVC
Eu fui de Slim
Eu fui de Slim
Eu fui de Slim
Eu fui de Slim
Quanto custa?
Seus projetos tendem a custar menos à longo prazo
Seus recursos serão melhor dimensionados Você fará entregas diárias ao invés de trimestrais
ou semanais Você entregará mais valor de negócio ao seu
cliente (satisfação garantida → maior renda) Você fará menos manutenção (menor custo) Seu projeto evoluirá mais rápido (ciclo de vida do
produto maior → maior lucro)
(Será que dá?)
• Para fazer um Framework Monolítico <ex. Laravel>
• Para fazer um Sistema completo
Onde mais você usariaum MicroFramework?
Obrigado!!