Upload
leo-hackin
View
678
Download
0
Embed Size (px)
DESCRIPTION
É notável a quantidade de aplicações em PHP que ainda utilizam nosso velho e conhecido modo Macarrônico de programar: dezenas de snippets e blocos de código que trabalham com regras de negócio, apresentação e tudo mais espalhados por N lugares na aplicação. A solução mais sustentável para esse tipo de situação seja provavelmente a adoção de um framework, mas existe uma resistência muito grande que é completamente justificável: voltamos àquelas perguntas relativas à “para que mexer num time que está ganhando?“. Vamos trabalhar um pouco essa idéia mostrando exemplos e confrontando situações reais.
Citation preview
Adote um framework!
@leohackin
Q vergonha
Léo Hackin (Rá-kim)
E-commerceConsultoria
Desenvolvimento
www.giran.com.br
+Kim
Já trampou com PHP macarronada e tudo mais
Já trabalhou com designers
Hoje usa frameworks
E é feliz :)
Pensa rápido! Qual a forma mais efetiva de parafusar um parafuso
bem parafusado na parede?
Com uma chave de fenda?
Não! Com um martelo seu jegue... ¬¬
Mas será que não tem um jeito mais melhor não? =(
A-há! Sempre tem!
Linguagem para apps simples
POGramadores doidões
Baixa remuneração
Não testam nada
Fazem tudo na coxa
Não servem pra sistemas “sérios”
Já falaram o que pra você?
Macarronada não é ruim, mas a longo prazo ...
engorda
te deixa lento
é difícil de digerir
As pessoas não fazem do jeito mais MELHOR por que ...
Não conhecem novas formas de alcançar o
que desejam
Ui
Ei gatinha
Acham que o que elas fazem é perfeito, dá
conta do recado ou “dá pro gasto”
As pessoas não fazem do jeito mais MELHOR por que ...
É ruim porque demora, e tempo é
dinheiro!
As pessoas não fazem do jeito mais MELHOR por que ...
Simplemesmente não sabem poronde começar para melhorar seu
desempenho ou resolver seus problemas.
As pessoas não fazem do jeito mais MELHOR por que ...
TextoVocê faz do seu jeito
mais melhor?
Qual o problema nisso?
1) Designers
Eles nos odeiam porque sempre reclamamos que eles ƒ.... nosso código
a culpa é sempre deles?Claro que
é!!! ¬¬Blastoise
Eu gosto de design e programação ...
Designers! Me adicionem: @wbotelhos!
Vamos trocar figureeeeenhas!
2) CSS/HTMLO programador tem contato direto com o CSS/HTML gerado pelo designer e sempre acaba entrando em atrito com o mesmo.
Atrito ????
NOFA!ADORO! :D
3) Regras de negócioRegras de negócio mal definidas (ou inexistentes), espalhadas pelo código e repetidas com “alteraçõezinhas”
Notícia tem data de
cadastro?
Tem sim.
Mas nesse form não tem data.
Se não deu pau, tá SUSSA!
4) Métodos espalhadosMétodos espalhados pela aplicação com nomes bizarros e/ou funcionalidades redundantes
28/08/2010
28.08.2010
2010-08-28
5) Manutenção custosaSe você precisa alterar uma regra de negócio, você tem que procurar por sua aplicação toda para alterar isso.
6) DespadronizaçãoNão existe um padrão definido de desenvolvimento. Cada desenvolvedor faz do jeito que sabe e que quer.
Meu monstro preferido
Crescimento descontrolado
Manutenção dificil (as vezes impossível)
Geralmente vulnerável ao Truck Factor
Difícil evolução
Tendencia a crescer via POG
PAPAI!!!!!
Alguém aí tem um monstro?
ADOTE UMAFRAMEWORK MVC! :D
FRAMEWORK MVCConjunto de classes implementadas em uma linguagem específica, usadas para auxiliar o desenvolvimento de software.
O que é o MVC?
Padrão de arquitetura de software
Separação da aplicação em três partes:
Os dados da aplicação A apresentação da informação
Processa os eventos da aplicação
O que você ganha com isso
Muita coisa já pronta, testada e funcional
Trabalho com Orientação à Objetos REAL
Muito mais produtividade
Separação do que a aplicação faz de como ela mostra
Mais tempo pra pensar nos problemas reais
Não precisa re-inventar a roda
Ganha tempo ... e tempo ... você sabe.
Como funciona, tio ?
Mysql, Postgres, Oracle e muitos
outros
Browser envia requisição à aplicação
O controller processa a ação
O controller processa a requisição e acessa a lógica de negócio (model) da aplicaçãoO model acessa a base de dados da aplicação para executar a ação requisitada pelo controllerO controller então seleciona a view correspondente a ação
O controller renderiza a view incluindo os dados de resposta da ação
O controller devolve a resposta para o browser
http://site/hello
Desculpinhas ...
“Já tá bom demais do jeito que eu tô fazendo: includes e funções. Tem um função que eu uso desde meu
primeiro admin! It’s Amazing!!!”
“Mas o sistema está pronto: é soh Ctrl+C, Ctrl+V e mudar o nome dos
campos. SUSSA!”
“Putz! Mas eu nem sei o que é esse negoço de MVC, ORM ... (...) Tudo orientado a objeto?
Meu Deus ... f*&%$* mermão!”
“Mané orientação a objetos. Meus includes dão conta do
recado tranquilo tranquilo. OO é pro Java! blargh! ~o~”
“O cliente disse que é soh essa listagenzinha de produtos e não
precisa de mais nada.”
Eu gosto de Flash e odeio frameworks e
HTML !
Sou webdesigner! Que que é
framework?
@leozamprogno S2 @coradini
Qual a sua desculpa ?
Medo de ferrar tudo o.O
Preguiça .... ZZZzzzzZZZComodismo ... ¬¬’
Se expor para e equipe e passar vergonha ...
Perder tempo e meu chefe me dar um baita esporro
Essas letrinhas não te dizem nada de nada ...
As pessoas não fazem do jeito mais MELHOR por que ...
Não conhecem novas formas de alcançar o
que desejam
Pois é!
Vc aqui denovo?
Isso tudo é normal ... :)
Tentando convencer ...
Elas já estão bem difundidas, com boa documentação e geralmente tem uma curva de aprendizado mínima
Fóruns, documentação, exemplos ... comunidade!
Conhecimento público
Constante evolução
Patches, novos módulos, correção de bugs, melhorias, E VAMO SIMBORA ...
Se o dono morrer, sua empresa não morre junto
É mais barato de manter :)É mais barato desenvolver :D
Uso de design patterns
soluções para problemas comuns
testados e refatorados
por programadores experientes
continuamente
de conhecimento de todos
Plugins e extensões a rodo!
controle de sessão
emailupload
autenticação
internacionalização
ajaxpaginação tabelas
MVC é o que há
model (dados e regras de negócio)
view (visualizações)
controller (busca dados no model - escolhe a view)
separa tudo, poupa stress com eles
Auto-reciclagem
Design Patterns
Orientação à Objetos
TDD / BDD / Testes :)
Controle de versão
Integração contínua
blablablablablabla ...
As dúvidas técnicas geralmente morrem em um ou dois meses de projeto
Maturidade para soluções corporativas
OO verdadeiro
Remuneração “de gente”
Montes e montes de documentação
Diminui a calvicie
Adoção por grandes empresas
Dicas pra começar
Inicie com projetos pequenos (uma semana ou duas) pra pegar o jeito
Não seja radical no inícioConheça os pontos fortes e fracos da framework e veja se ela vai se encaixar no seu trabalho.
Escolha alguém para ser o líder de estudos da framework e depois faça um hands-on
Entre nos fóruns e listas de discussão do framework
Torne hábito ...
Escrever testes
Usar controle de versão
Tentar fazer integração contínua
Estudar ... estudar ... estudar!
Invente, tente ...
As que eu posso falar ...
Fácil de aprender
Boa documentação
ORM embutido
Comunidade f*da
Meio lento :(
Mais enxuto
Aprendizado tranquilo
Boa documentação
ORM não embutido
Mas é rápido :)
Alguém conhece alguma?
Alguém já tentou usar ?
Qual os problemas rolaram?
VALEW! :)
[email protected]@leohackinwww.leohackin.com.br