Adote um framework!
Q vergonha




                 @leohackin




Léo Hackin (Rá-kim)
E-commerce
   Consultoria
 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... ¬¬
A-há! Sempre
    tem!




Mas será que não tem um
jeito mais melhor não? =(
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 ...


Ei gatinha
                  Não conhecem novas
                  formas de alcançar o
                      que desejam
             Ui
As pessoas não fazem do jeito
  mais MELHOR por que ...


              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 por
     onde começar para melhorar seu
  desempenho ou resolver seus problemas.
Você faz Texto seu jeito
          do
   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/HTML
O programador tem contato direto com o CSS/
                  Atrito ????
HTML gerado pelo designer e sempre acaba
             NOFA!
entrando em atrito com o mesmo.
                ADORO! :D
3) Regras de negócio
Regras de negócio mal definidas (ou
inexistentes), espalhadas pelo código e
repetidas com “alteraçõezinhas”


Notícia tem                          Tem sim.
 data de
cadastro?

                                      Se não deu
 Mas nesse form                     pau, tá SUSSA!
 não tem data.
4) Métodos espalhados
Métodos espalhados pela aplicação com nomes
bizarros e/ou funcionalidades redundantes


                          2010-08-28


         28/08/2010
                         28.08.2010
5) Manutenção custosa
Se você precisa alterar uma regra de negócio,
você tem que procurar por sua aplicação toda
para alterar isso.
6) Despadronização
Nã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 UMA
FRAMEWORK MVC! :D
FRAMEWORK MVC
Conjunto 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:




                   Processa os eventos da aplicação




                                              A apresentação da informação
Os dados 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 ?

                                       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ção
                                       O model acessa a base de
                                       dados da aplicação para
                                       executar a ação requisitada
                                       pelo controller
                                       O controller então seleciona a
                                       view correspondente a ação
                                       O controller renderiza a view
Mysql, Postgres,                       incluindo os dados de resposta
Oracle e muitos                        da ação
    outros
                                       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 .... ZZZzzzzZZZ
Comodismo ... ¬¬’
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 ...

Vc aqui
denovo?             Não conhecem novas
                    formas de alcançar o
                        que desejam
          Pois é!
Isso tudo é normal ... :)
Tentando convencer ...
Elas já estão bem
difundidas, com boa
documentação e geralmente
tem uma curva de
aprendizado mínima
Conhecimento público

Fóruns, documentação,
exemplos ... comunidade!
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          internacionalização

  email
              upload
                           autenticação
     ajax
                                   tabelas
               paginação
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ício
Conheç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! :)

leohackin@gmail.com
@leohackin
www.leohackin.com.br

PHPZEIRO: Adote um framework

  • 1.
  • 3.
    Q vergonha @leohackin Léo Hackin (Rá-kim)
  • 5.
    E-commerce Consultoria Desenvolvimento www.giran.com.br
  • 6.
  • 7.
    Já trampou comPHP macarronada e tudo mais Já trabalhou com designers Hoje usa frameworks E é feliz :)
  • 8.
    Pensa rápido! Quala forma mais efetiva de parafusar um parafuso bem parafusado na parede?
  • 9.
    Com uma chavede fenda? Não! Com um martelo seu jegue... ¬¬
  • 10.
    A-há! Sempre tem! Mas será que não tem um jeito mais melhor não? =(
  • 11.
    Linguagem para appssimples POGramadores doidões Baixa remuneração Não testam nada Fazem tudo na coxa Não servem pra sistemas “sérios”
  • 12.
    Já falaram oque pra você?
  • 14.
    Macarronada não éruim, mas a longo prazo ... engorda te deixa lento é difícil de digerir
  • 15.
    As pessoas nãofazem do jeito mais MELHOR por que ... Ei gatinha Não conhecem novas formas de alcançar o que desejam Ui
  • 16.
    As pessoas nãofazem do jeito mais MELHOR por que ... Acham que o que elas fazem é perfeito, dá conta do recado ou “dá pro gasto”
  • 17.
    As pessoas nãofazem do jeito mais MELHOR por que ... É ruim porque demora, e tempo é dinheiro!
  • 18.
    As pessoas nãofazem do jeito mais MELHOR por que ... Simplemesmente não sabem por onde começar para melhorar seu desempenho ou resolver seus problemas.
  • 20.
    Você faz Textoseu jeito do mais melhor?
  • 21.
  • 22.
  • 23.
    Eles nos odeiamporque sempre reclamamos que eles ƒ.... nosso código a culpa é sempre deles? Claro que Blastoise é!!! ¬¬
  • 24.
    Eu gosto dedesign e programação ... Designers! Me adicionem: @wbotelhos! Vamos trocar figureeeeenhas!
  • 26.
    2) CSS/HTML O programadortem contato direto com o CSS/ Atrito ???? HTML gerado pelo designer e sempre acaba NOFA! entrando em atrito com o mesmo. ADORO! :D
  • 27.
    3) Regras denegócio Regras de negócio mal definidas (ou inexistentes), espalhadas pelo código e repetidas com “alteraçõezinhas” Notícia tem Tem sim. data de cadastro? Se não deu Mas nesse form pau, tá SUSSA! não tem data.
  • 28.
    4) Métodos espalhados Métodosespalhados pela aplicação com nomes bizarros e/ou funcionalidades redundantes 2010-08-28 28/08/2010 28.08.2010
  • 29.
    5) Manutenção custosa Sevocê precisa alterar uma regra de negócio, você tem que procurar por sua aplicação toda para alterar isso.
  • 30.
    6) Despadronização Não existeum padrão definido de desenvolvimento. Cada desenvolvedor faz do jeito que sabe e que quer.
  • 31.
    Meu monstro preferido Crescimentodescontrolado Manutenção dificil (as vezes impossível) Geralmente vulnerável ao Truck Factor Difícil evolução Tendencia a crescer via POG
  • 32.
  • 33.
    Alguém aí temum monstro?
  • 34.
  • 35.
    FRAMEWORK MVC Conjunto declasses implementadas em uma linguagem específica, usadas para auxiliar o desenvolvimento de software.
  • 36.
    O que éo MVC? Padrão de arquitetura de software Separação da aplicação em três partes: Processa os eventos da aplicação A apresentação da informação Os dados da aplicação
  • 37.
    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.
  • 38.
    Como funciona, tio? 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ção O model acessa a base de dados da aplicação para executar a ação requisitada pelo controller O controller então seleciona a view correspondente a ação O controller renderiza a view Mysql, Postgres, incluindo os dados de resposta Oracle e muitos da ação outros O controller devolve a resposta para o browser http://site/hello
  • 39.
  • 40.
    “Já tá bomdemais do jeito que eu tô fazendo: includes e funções. Tem um função que eu uso desde meu primeiro admin! It’s Amazing!!!”
  • 41.
    “Mas o sistemaestá pronto: é soh Ctrl+C, Ctrl+V e mudar o nome dos campos. SUSSA!”
  • 42.
    “Putz! Mas eunem sei o que é esse negoço de MVC, ORM ... (...) Tudo orientado a objeto? Meu Deus ... f*&%$* mermão!”
  • 43.
    “Mané orientação aobjetos. Meus includes dão conta do recado tranquilo tranquilo. OO é pro Java! blargh! ~o~”
  • 44.
    “O cliente disseque é soh essa listagenzinha de produtos e não precisa de mais nada.”
  • 45.
    Eu gosto deFlash e odeio frameworks e HTML ! Sou webdesigner! Que que é framework? @leozamprogno S2 @coradini
  • 46.
    Qual a suadesculpa ?
  • 47.
  • 48.
  • 49.
    Se expor parae equipe e passar vergonha ...
  • 50.
    Perder tempo emeu chefe me dar um baita esporro
  • 51.
    Essas letrinhas nãote dizem nada de nada ...
  • 52.
    As pessoas nãofazem do jeito mais MELHOR por que ... Vc aqui denovo? Não conhecem novas formas de alcançar o que desejam Pois é!
  • 53.
    Isso tudo énormal ... :)
  • 54.
  • 55.
    Elas já estãobem difundidas, com boa documentação e geralmente tem uma curva de aprendizado mínima
  • 56.
  • 57.
    Constante evolução Patches, novosmódulos, correção de bugs, melhorias, E VAMO SIMBORA ...
  • 58.
    Se o donomorrer, sua empresa não morre junto
  • 59.
    É mais baratode manter :) É mais barato desenvolver :D
  • 60.
    Uso de designpatterns soluções para problemas comuns testados e refatorados por programadores experientes continuamente de conhecimento de todos
  • 61.
    Plugins e extensõesa rodo! controle de sessão internacionalização email upload autenticação ajax tabelas paginação
  • 62.
    MVC é oque 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
  • 63.
    Auto-reciclagem Design Patterns Orientação à Objetos TDD / BDD / Testes :) Controle de versão Integração contínua blablablablablabla ...
  • 64.
    As dúvidas técnicas geralmentemorrem em um ou dois meses de projeto
  • 66.
    Maturidade para soluçõescorporativas OO verdadeiro Remuneração “de gente” Montes e montes de documentação Diminui a calvicie Adoção por grandes empresas
  • 67.
  • 68.
    Inicie com projetos pequenos(uma semana ou duas) pra pegar o jeito
  • 69.
    Não seja radicalno início Conheça os pontos fortes e fracos da framework e veja se ela vai se encaixar no seu trabalho.
  • 70.
    Escolha alguém paraser o líder de estudos da framework e depois faça um hands-on
  • 71.
    Entre nos fórunse listas de discussão do framework
  • 72.
    Torne hábito ... Escrever testes Usar controle de versão Tentar fazer integração contínua Estudar ... estudar ... estudar!
  • 73.
  • 74.
    As que euposso falar ...
  • 75.
    Fácil de aprender Boadocumentação ORM embutido Comunidade f*da Meio lento :(
  • 76.
    Mais enxuto Aprendizado tranquilo Boadocumentação ORM não embutido Mas é rápido :)
  • 77.
  • 78.
  • 79.
  • 80.