Entendendo os
Microframeworks
por Felipe Bastos
felipebastosweb@gmail.com
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ão
Propó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ê usaria
um MicroFramework?
Obrigado!!

Entendendo os microframeworks em PHP

  • 1.
    Entendendo os Microframeworks por FelipeBastos felipebastosweb@gmail.com
  • 2.
    Autor •Felipe A. BastosMoraes 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 ;)
  • 3.
    Agenda <prevista> •Convite paraparticipaçã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
  • 4.
    Por que elessurgiram?
  • 5.
    •PHP é Coisade 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 ...
  • 6.
    Você já ouviuou 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
  • 7.
    •Odisseia da Manutenção –Nãosei 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 ...
  • 8.
  • 9.
    Micro Frameworks eos 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
  • 10.
  • 11.
  • 12.
  • 13.
    Todos os Componentessão Versionados e Testados
  • 14.
    - Senhor, estoubuscando informações.
  • 15.
    Seus Serviços terão PropósitosEspecí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.
  • 16.
  • 17.
    Na visão deFowler e Lewis
  • 18.
    Sua Equipe tambémserá Evolutiva
  • 19.
  • 20.
    Qual Escolher? •Slim •Ou umMenor •Silex •Mais Complexo •Mais ...
  • 21.
    O SLIM É omais básico Sua modularização é fornecida por terceiros REST básico Views O SILEX Fornece toda estrutura de ServiceProviders Tem diversos Providers Suporta MVC
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
    Quanto custa? Seus projetostendem 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)
  • 27.
    (Será que dá?) •Parafazer um Framework Monolítico <ex. Laravel> •Para fazer um Sistema completo Onde mais você usaria um MicroFramework?
  • 28.