SlideShare uma empresa Scribd logo
1 de 80
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoAlexandre Andrade
 
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Thiago Faria de Andrade
 
Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosDionatan default
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmáticaelliando dias
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilAriane Izac
 
ZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasRafael Chinelato Del Nero
 
Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.Rômulo Augusto Santos
 
Construindo seu framework CSS
Construindo seu framework CSSConstruindo seu framework CSS
Construindo seu framework CSSDiego Eis
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Natanael Simões
 
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...minastestingconference
 
A influência do Test-Driven Design no projeto de classes e no design em siste...
A influência do Test-Driven Design no projeto de classes e no design em siste...A influência do Test-Driven Design no projeto de classes e no design em siste...
A influência do Test-Driven Design no projeto de classes e no design em siste...Toni Esteves
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...GessdaSilvaMachado
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?Samuel Lourenço
 
Falácias e outras ilusões sobre Teste Ágil
Falácias e outras ilusões sobre Teste ÁgilFalácias e outras ilusões sobre Teste Ágil
Falácias e outras ilusões sobre Teste ÁgilMario Ramos
 

Mais procurados (20)

Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinho
 
O que é código bonito?
O que é código bonito?O que é código bonito?
O que é código bonito?
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...
 
Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anos
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmática
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágil
 
ZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivas
 
Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.
 
Construindo seu framework CSS
Construindo seu framework CSSConstruindo seu framework CSS
Construindo seu framework CSS
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1
 
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
 
A influência do Test-Driven Design no projeto de classes e no design em siste...
A influência do Test-Driven Design no projeto de classes e no design em siste...A influência do Test-Driven Design no projeto de classes e no design em siste...
A influência do Test-Driven Design no projeto de classes e no design em siste...
 
Tdd na veia
Tdd na veiaTdd na veia
Tdd na veia
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Code Smells
Code SmellsCode Smells
Code Smells
 
Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Falácias e outras ilusões sobre Teste Ágil
Falácias e outras ilusões sobre Teste ÁgilFalácias e outras ilusões sobre Teste Ágil
Falácias e outras ilusões sobre Teste Ágil
 

Semelhante a Adote um framework para melhorar seu código

Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 
Componentes Transformers: Combinando o melhor de cada framework
Componentes Transformers: Combinando o melhor de cada frameworkComponentes Transformers: Combinando o melhor de cada framework
Componentes Transformers: Combinando o melhor de cada frameworkFlávio Lisboa
 
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de SoftwareDextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de SoftwareDextra
 
Encontrando equilíbrio do DDD enquanto sua aplicação cresce
Encontrando equilíbrio do DDD enquanto sua aplicação cresceEncontrando equilíbrio do DDD enquanto sua aplicação cresce
Encontrando equilíbrio do DDD enquanto sua aplicação cresceCarolina Karklis
 
Além do MVP com PHP - TDC POA 2015
Além do MVP com PHP  - TDC POA 2015Além do MVP com PHP  - TDC POA 2015
Além do MVP com PHP - TDC POA 2015Romeu Mattos
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agileAlini Rebonatto
 
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...Sergio Costa
 
5 Pontos sobre desenvolvimento de software
5 Pontos sobre desenvolvimento de software5 Pontos sobre desenvolvimento de software
5 Pontos sobre desenvolvimento de softwareMiguel Alho
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Daniel Carvalhinho
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Taller Negócio Digitais
 
Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareGabriel Felipe Soares
 
Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011Marcos Paulo Souza Damasceno
 

Semelhante a Adote um framework para melhorar seu código (20)

Começando errado com php
Começando errado com phpComeçando errado com php
Começando errado com php
 
O que é ser um bom programador?
O que é ser um bom programador?O que é ser um bom programador?
O que é ser um bom programador?
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Componentes Transformers: Combinando o melhor de cada framework
Componentes Transformers: Combinando o melhor de cada frameworkComponentes Transformers: Combinando o melhor de cada framework
Componentes Transformers: Combinando o melhor de cada framework
 
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de SoftwareDextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
 
Encontrando equilíbrio do DDD enquanto sua aplicação cresce
Encontrando equilíbrio do DDD enquanto sua aplicação cresceEncontrando equilíbrio do DDD enquanto sua aplicação cresce
Encontrando equilíbrio do DDD enquanto sua aplicação cresce
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
 
Além do MVP com PHP - TDC POA 2015
Além do MVP com PHP  - TDC POA 2015Além do MVP com PHP  - TDC POA 2015
Além do MVP com PHP - TDC POA 2015
 
além do mvp com php
além do mvp com phpalém do mvp com php
além do mvp com php
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
 
5 Pontos sobre desenvolvimento de software
5 Pontos sobre desenvolvimento de software5 Pontos sobre desenvolvimento de software
5 Pontos sobre desenvolvimento de software
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de Software
 
Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011
 

Mais de Leonardo "Hackin" Freire

Mais de Leonardo "Hackin" Freire (9)

iMasters DevCommerce 2016 - A difícil tarefa de ser TI numa empresa de varejo...
iMasters DevCommerce 2016 - A difícil tarefa de ser TI numa empresa de varejo...iMasters DevCommerce 2016 - A difícil tarefa de ser TI numa empresa de varejo...
iMasters DevCommerce 2016 - A difícil tarefa de ser TI numa empresa de varejo...
 
A arte de_pomodorar
A arte de_pomodorarA arte de_pomodorar
A arte de_pomodorar
 
ZTD e POMODOROS
ZTD e POMODOROSZTD e POMODOROS
ZTD e POMODOROS
 
[RockAndRails] TDD com RSpec
[RockAndRails] TDD com RSpec[RockAndRails] TDD com RSpec
[RockAndRails] TDD com RSpec
 
Giran Sieges - Applescript com @leohackin
Giran Sieges - Applescript com @leohackinGiran Sieges - Applescript com @leohackin
Giran Sieges - Applescript com @leohackin
 
Hacking Twitter API [ Giran Siege ]
Hacking Twitter API [ Giran Siege ]Hacking Twitter API [ Giran Siege ]
Hacking Twitter API [ Giran Siege ]
 
Os desafios no uso de XP e SCRUM no dia-a-dia
Os desafios no uso de XP e SCRUM no dia-a-diaOs desafios no uso de XP e SCRUM no dia-a-dia
Os desafios no uso de XP e SCRUM no dia-a-dia
 
Iniciando com IphoneDev
Iniciando com IphoneDevIniciando com IphoneDev
Iniciando com IphoneDev
 
Designer vs programador
Designer vs programadorDesigner vs programador
Designer vs programador
 

Adote um framework para melhorar seu código