impacto dos frameworks php
TRANSCRIPT
Impacto dos Frameworks PHPConselhos e relatos de um desenvolvedor
Campinas
Thiago Rodrigues 15/07/2015http://xthiago.com
Thiago RodriguesBacharel em Sistemas de Informação pela Universidade do Estado de Minas Gerais (UEMG);
Programador PHP há 10 anos;
Entusiasta do software livre;
Organizador do PHP Campinas;
Colaborador na CI&T.
Campinas
Agenda
O que é framework;
O que me levou a abandonar meu "framework caseiro”;
Benefícios;
Tipos de frameworks;
Apresentação de alguns dos principais frameworks PHP;
Escolhendo o framework;
Erros comuns;
Futuro dos frameworks PHP;
Perguntas & respostas.
Campinas
DEFINIÇÃO TEÓRICA:
[..]é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica[..]
https://pt.wikipedia.org/wiki/Framework
O que é um framework?
DEFINIÇÃO PRÁTICA: São ferramentas que podem ser usadas em diversos trabalhos
Isso é um framework!
Quais tarefas são necessárias para cuidar deste jardim?
ALGUMAS TAREFAS: aparar grama, podar plantas, irrigar, cavar, etc…
Quais tarefas são necessárias para cuidar deste jardim?
Se o jardineiro não tivesse essas ferramentas…
COMO SERIA? produtividade; qualidade do trabalho; satisfação do cliente.
Se o jardineiro não tivesse essas ferramentas…
EM SUMA: Ele gastaria tempo considerável criando ferramentas (de qualidade duvidosa) ao invés de cuidar do jardim;
Reinventando a roda
HÁ ALGUNS ANOS ATRÁS NOTEI QUE: gastava mais tempo desenvolvendo/evoluindo meu "próprio framework" do que solucionando problemas de negócios;
Benefícios ao adotar um framework de mercado
PRINCIPAIS:
+ funcionalidades;+ qualidade no design do código;+ documentado;+ padronizado;+ confiável/testado;+ especialistas;+ casos de uso;+ reutilização de código;- custo de manutenção;- custo de treinamento;
Tipos de frameworks
Full Stack Micro CMS/aplicação específica
• Muitas funcionalidades;• Maior curva de aprendizado;• Maior gama de módulos;• Mais pesado (na config padrão);• Geralmente impõe estrutura
organizacional e componentes básicos;
• Funcionalidades básicas;• Menor curva de aprendizado;• Menor quantidade de
módulos;• Mais leve (na config padrão);• Flexível quanto a estrutura
organizacional e componentes básicos;
• Muitas funcionalidades relacionadas ao nicho específico;
• Geralmente possuem grande gama de módulos;
• Geralmente são difíceis de se adaptar para outros nichos.
Alguns dos principais frameworks PHP Full Stack
Alguns dos principais micro frameworks PHP
Seu framework preferido aqui
Alguns dos principais CMS/aplicações específicas em PHP
Qual framework escolher?
NÃO EXISTE BALA DE PRATA.
Depende de:
• Objetivos do projeto;• Requisitos;• Prazo de entrega;• Orçamento;• Habilidade do time;• Vida útil do software;
Erros comuns – Saber desenvolver só com 1 framework
Quanto mais ferramentas conhecer, melhor. Lembre-se: cada uma possui sua indicação.
Erros comuns – Buscar soluções somente na comunidade do framework
Esqueceu que o framework usa PHP? Tem muito projeto bom por ai.Não encontrou nada em PHP? Procure por nodejs, Linux, etc…
Erros comuns – Amar o framework de forma irracional
Não preciso comentar, né?
Erros comuns – Usar um framework morto ou zumbi
Será que ele ainda é relevante? Será que ainda possui uma comunidade forte? Quais são as perspectivas de longo prazo?
Erros comuns – Usar um framework sem testes automatizados
A cada atualização uma nova explosão? Ele precisa ter algum tipo de teste automatizado para garantir que não hajam quebras.
Erros comuns – Acoplar código da aplição ao framework
Um dia você vai querer atualizar a versão ou trocar de framework.. E ai, vai reescrever tudo?
Futuro sem frameworks Full Stack?
Gerenciador de dependências, padrões/convenções da comunidade, desacoplamento dos componentes… "seu framework" em minutos.
http://semver.org/
O futuro é agora…
Usam componentes Symfony:
• Drupal 8• phpBB• Laravel• Joomla!• Composer• Magento• Silex• PHPUnit• Doctrine• Behat• Sylius• + em http://symfony.com/projects
Ainda nesse ano:
Zend Framework 3 – foco em simplicidade, reusabilidade e performance.
Symfony 3 – evolução da versão 2.
PHP 7 –performance, tipos escalares, etc.
Drupal 8 – totalmente reformulado em uma abordagem mais moderna.
Dúvidas?
Thiago [email protected]://xthiago.com
Contatos:
Campinasfacebook.com/groups/grupo.campinas/