Entendendo os microframeworks em PHP

Preview:

Citation preview

Entendendo osMicroframeworks

por Felipe Bastosfelipebastosweb@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ã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!!

Recommended