SlideShare uma empresa Scribd logo
1 de 41
WordPress
    Desenvolvimento de
    Sites e Redes Sociais

    Vinicius Massuchetto
      vinicius.soylocoporti.org.br




                    
Um pouco sobre o WordPress
    ●
    ●   Inicialmente uma plataforma para blogs
    ●
    ●   8 anos em 2011
    ●
    ●   14.500 plugins
    ●
    ●   1.380 temas oficiais (funcionando)
    ●
    ●   CMS aberto mais baixado em 2010
    ●
    ●   Empregado em 14% dos domínios mais
        populares

                            
O WordPress é ...
    ●
    ●   … interessante para o cliente
    ●
    ●   … amigável ao usuário
    ●
    ●   … mais fácil para o designer
    ●
    ●   … ágil para o desenvolvedor
    ●
    ●   … compatível com grandes tarefas




                            
… interessante
    para o cliente



           
Facilidades para quem compra
    ●
    ●   Hospedagem fácil e barata
    ●
    ●   Estrutura SEO pronta
    ●
    ●   Elaboração de portais unificados com
        múltiplos sites sob a mesma instalação
    ●
    ●   Integração entre blogs, fóruns e rede
        social própria



                            
… mais fácil
    para o designer



            
Design no WordPress
    ●
    ●   Templates orientados por nomes
        padronizados dos arquivos
    ●
    ●   Marcação simples em PHP
    ●
    ●   Extensa e detalhada documentação
    ●
    ●   Plugins que fazem quase de tudo
    ●
    ●   Popularizado: Inúmeros exemplos e
        temas prontos pela internet (!)
    ●
    ●   Diversos frameworks de temas
                           
Marcação simples em PHP
    ●
    ●   home_url()
    ●
    ●   the_title()
    ●
    ●   the_content()
    ●
    ●   the_tags()
    ●
    ●   wp_list_categories()
    ●
    ●   while (have_posts()) { … }



                         
Diversos frameworks de temas
    ●
    ●   Funcionalidade de temas pais
    ●
    ●   Estrutura pré-montada para modificação
        modular
    ●
    ●   Callbacks para diferentes estágios de
        renderização do HTML




                            
     
     
     
… ágil para os
    desenvolvedores



            
Desenvolvimento no WordPress
    ●
    ●   Interferência no comportamento padrão
        via callbacks (ações e filtros)
    ●
    ●   Campos personalizados
    ●
    ●   Tipos personalizados de conteúdo
    ●
    ●   Estrutura pronta para cache em
        HTML estático



                           
Hooks: Ações e filtros
    ●
    ●   Verificações feitas em várias etapas do
        carregamento
    ●
    ●   Mais de 1.500 chamadas diferentes (!)
    ●
    ●   Suporte também presente em vários
        plugins




                            
Hooks: Ações e filtros

add_[action,filter]($tag,$func)

Ações                   Filtros
● init
●                       ● the_content
                        ●


    ●
    ●   wp_head         ●
                        ●   excerpt_length
    ●
    ●   pre_get_posts   ●
                        ●   posts_request
    ●
    ●   shutdown        ●
                        ●   wp_list_pages


                         
Tipos de post e taxonomia
    ●
    ●   Variações dos tipos padrão para:
        ●
        ●   post (posts e páginas)
            post (posts e páginas)
        ●
        ●   taxonomia (categorias e tags)
            taxonomia (categorias e tags)
    ●
    ●   Tratamento de dados adicionais via
        campos personalizados
    ●
    ●   Formatação para qualquer tipo de
        conteúdo desejado


                                
Exemplo de posts e taxonomias
    ●
    ●   Campeonato
        ●
        ●   Campos: Título, times, duração …
            Campos: Título, times, duração …
        ●
        ●   Taxonomia: Tipo de Campeonato
            Taxonomia: Tipo de Campeonato
    ●
    ●   Time
        ●
        ●   Campos: Nome, estádio, jogadores …
            Campos: Nome, estádio, jogadores …
        ●
        ●   Taxonomia: Cidade
            Taxonomia: Cidade
    ●
    ●   Jogador
        ●
        ●   Campos: Nome, nascimento, peso, altura ...
            Campos: Nome, nascimento, peso, altura ...
        ●
        ●   Taxonomia: Posição
            Taxonomia: Posição
                                 
     
Multisite, BuddyPress e bbPress
    ●
    ●   Vários blogs sob a mesma instalação,
        integrados em rede social e fórum
    ●
    ●   Usuários independentes por blog e
        comuns nos fóruns e redes sociais
    ●
    ●   Nomes dos blogs como subdomínios ou
        como subpastas




                            
     
… compatível com
     grandes tarefas



            
Problemas de desempenho
    ●
    ●   4258 funções, 187 classes, 5340
        variáveis e 296 constantes
    ●
    ●   Alocação de ~32MB por instanciação
        ●
        ●   + plugins pode chegar até ~60MB
            + plugins pode chegar até
    ●
    ●   Para grandes sites o uso de cache e
        estratégias de infraestrutura é
        obrigatório


                               
Metodologias de desenvolvimento
    ●
    ●   Layouts inteligentes
    ●
    ●   Combinar imagens reduzindo requisições
    ●
    ●   Evitar o uso de plugins
    ●
    ●   Se possível, integrar nos temas as partes
        utilizadas dos plugins
    ●
    ●   Proteger-se quanto a floods de
        comentários: WP Spam Free
    ●
    ●   Seguir recomendações do Google com o
        Firebug
                                
Uso de sistemas de cache
    ●
    ●   Plugins como
        W3 Total Cache e WP Super Cache
    ●
    ●   Geração de páginas estáticas e envio do
        HTML já pré compactado




                            
Camadas de requisição
    ●
    ●   nginx com Varnish
    ●
    ●   Load Balancer
    ●
    ●   Apache com memcached e
        WP Super Cache
    ●
    ●   Processamento com MySQL HyperDB
    ●
    ●   Servidor Emergencial: Manutenção de
        páginas estáticas por rsync


                             
Tá! E daí!?



          
Alguns exemplos
       famosos ...



            
 
    TechCrunch
    TechCrunch
         
 
    Mashable
    Mashable
        
 
    CNN 40 blogs
    CNN 40 blogs
          
 
    91 Rock 30 blogs
    91 Rock 30 blogs
            
 
    New York Times 70 blogs
    New York Times 70 blogs
                
 
    Adobe 1.200 blogs
    Adobe 1.200 blogs
             
 
    Globo.com 800 blogs
    Globo.com 800 blogs
              
 
    WordPress.com 20 milhões de blogs
    WordPress.com 20 milhões de blogs
                     
Curiosidades WordPress.com
    ●
    ●   Todos os plugins disponíveis são
        reescritos para adequação de
        desempenho
    ●
    ●   Versão bleeding edge (mais atual que a
        disponível para download)
    ●
    ●   Deploy contínuo via sandbox dos
        desenvolvedores
    ●
    ●   Sem staging nem revisão de código

                            
Curiosidades WordPress.com
    ●
    ●   200 comentários por minuto
    ●
    ●   250 posts por minuto
    ●
    ●   2.5 bilhões de visualizações por mês
    ●
    ●   1.500 servidores
    ●
    ●   4 datacenters
    ●
    ●   3 nuvens
    ●
    ●   1 codebase
    ●
    ●   1 banco de dados
                            
Ou seja:
    É extremamente razoável
        usar o WordPress
      para tarefas críticas.




                
Obrigado!
    Vinicius Massuchetto




              
Referências
    ●
    ●   wordpress.org
    ●
    ●   wordpress.com/stats
    ●
    ●   adambrown.info/p/wp_hooks/version/3.1
    ●
    ●   phpxref.ftwr.co.uk/wordpress
    ●
    ●   curitiba.wordcamp.com.br/programacao




                           

Mais conteúdo relacionado

Mais procurados

Instalando Drupal, Começando do Começo
Instalando Drupal, Começando do ComeçoInstalando Drupal, Começando do Começo
Instalando Drupal, Começando do Começosauloamui
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front endDouglas Matoso
 
Chromium: o navegador que mudou o mundo
Chromium: o navegador que mudou o mundoChromium: o navegador que mudou o mundo
Chromium: o navegador que mudou o mundoAlexandre Teles
 
Quercus - Running PHP over Java
Quercus - Running PHP over Java Quercus - Running PHP over Java
Quercus - Running PHP over Java Jeff Prestes
 
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e BowerASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bowertdc-globalcode
 
drupal: ligando os nos da rede
drupal: ligando os nos da rededrupal: ligando os nos da rede
drupal: ligando os nos da redeAndré Avorio
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimentamichel adriano medeiros
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJSGiovanni Bassi
 
O que esperar do Codeigniter 4
O que esperar do Codeigniter 4O que esperar do Codeigniter 4
O que esperar do Codeigniter 4Jonathan Lamim
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terEmerson Macedo
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.Filipe Morelli
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o NodejsCaio Cutrim
 

Mais procurados (17)

Instalando Drupal, Começando do Começo
Instalando Drupal, Começando do ComeçoInstalando Drupal, Começando do Começo
Instalando Drupal, Começando do Começo
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
Chromium: o navegador que mudou o mundo
Chromium: o navegador que mudou o mundoChromium: o navegador que mudou o mundo
Chromium: o navegador que mudou o mundo
 
Quercus - Running PHP over Java
Quercus - Running PHP over Java Quercus - Running PHP over Java
Quercus - Running PHP over Java
 
Codando com PHP e JQuery
Codando com PHP e JQueryCodando com PHP e JQuery
Codando com PHP e JQuery
 
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e BowerASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
 
drupal: ligando os nos da rede
drupal: ligando os nos da rededrupal: ligando os nos da rede
drupal: ligando os nos da rede
 
Aula09 - Java Script
Aula09 - Java ScriptAula09 - Java Script
Aula09 - Java Script
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
Docker postgre
Docker postgreDocker postgre
Docker postgre
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJS
 
O que esperar do Codeigniter 4
O que esperar do Codeigniter 4O que esperar do Codeigniter 4
O que esperar do Codeigniter 4
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Browser Mobile - Chrome
Browser Mobile - ChromeBrowser Mobile - Chrome
Browser Mobile - Chrome
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o Nodejs
 

Destaque

Israk Signage - Digital signage Software CDMS 4.2
Israk Signage - Digital signage Software CDMS 4.2Israk Signage - Digital signage Software CDMS 4.2
Israk Signage - Digital signage Software CDMS 4.2Isrusli Ismail
 
Computer Investigatory Project
Computer Investigatory ProjectComputer Investigatory Project
Computer Investigatory ProjectNishant Jha
 
StatsCraft 2015: Monitoring using riemann - Moshe Zada
StatsCraft 2015: Monitoring using riemann - Moshe ZadaStatsCraft 2015: Monitoring using riemann - Moshe Zada
StatsCraft 2015: Monitoring using riemann - Moshe ZadaStatsCraft
 
Digital Signage Software EzPoster
Digital Signage Software EzPosterDigital Signage Software EzPoster
Digital Signage Software EzPosterIsrusli Ismail
 

Destaque (9)

Itd slides wz
Itd slides wzItd slides wz
Itd slides wz
 
Resume
ResumeResume
Resume
 
Birthday invitation
Birthday invitationBirthday invitation
Birthday invitation
 
Israk Signage - Digital signage Software CDMS 4.2
Israk Signage - Digital signage Software CDMS 4.2Israk Signage - Digital signage Software CDMS 4.2
Israk Signage - Digital signage Software CDMS 4.2
 
Computer Investigatory Project
Computer Investigatory ProjectComputer Investigatory Project
Computer Investigatory Project
 
StatsCraft 2015: Monitoring using riemann - Moshe Zada
StatsCraft 2015: Monitoring using riemann - Moshe ZadaStatsCraft 2015: Monitoring using riemann - Moshe Zada
StatsCraft 2015: Monitoring using riemann - Moshe Zada
 
Beloved By Toni Morrison
Beloved By Toni MorrisonBeloved By Toni Morrison
Beloved By Toni Morrison
 
Sources of energy
Sources of energySources of energy
Sources of energy
 
Digital Signage Software EzPoster
Digital Signage Software EzPosterDigital Signage Software EzPoster
Digital Signage Software EzPoster
 

Semelhante a Wordpress

Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Tiago Hillebrandt
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressTiago Hillebrandt
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
 
Melhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressMelhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressJulian Fernandes
 
Roadshow Brasília Novas funcionalidades Liferay 6
Roadshow Brasília Novas funcionalidades Liferay 6Roadshow Brasília Novas funcionalidades Liferay 6
Roadshow Brasília Novas funcionalidades Liferay 6SEA Tecnologia
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universoelliando dias
 
Palestra wordpress - II forum revista espírito livre
Palestra wordpress - II forum revista espírito livrePalestra wordpress - II forum revista espírito livre
Palestra wordpress - II forum revista espírito livreGustavo Freitas
 
GUTENBERG EM PRODUÇÃO: QUALIDADES, DESAFIOS
GUTENBERG EM PRODUÇÃO: QUALIDADES, DESAFIOSGUTENBERG EM PRODUÇÃO: QUALIDADES, DESAFIOS
GUTENBERG EM PRODUÇÃO: QUALIDADES, DESAFIOSWordCamp Floripa
 
Desenvolvendo websites com Drupal - IV ENSOL
Desenvolvendo websites com Drupal - IV ENSOLDesenvolvendo websites com Drupal - IV ENSOL
Desenvolvendo websites com Drupal - IV ENSOLGedvan Dias
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Tiago Hillebrandt
 
Postgresql 50 Sabores - PgDay Ceará 2013
Postgresql 50 Sabores - PgDay Ceará 2013Postgresql 50 Sabores - PgDay Ceará 2013
Postgresql 50 Sabores - PgDay Ceará 2013Cláudio Leopoldino
 
Visao geralti netshoes04
Visao geralti netshoes04Visao geralti netshoes04
Visao geralti netshoes04Ale Uehara
 
Como escolher o tema ideal para o seu projeto
Como escolher o tema ideal para o seu projetoComo escolher o tema ideal para o seu projeto
Como escolher o tema ideal para o seu projetoMarcos Alexandre
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Flávio Lisboa
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressJackson F. de A. Mafra
 
Dos monolitos aos microsserviços - PythonBrasil13
Dos monolitos aos microsserviços - PythonBrasil13Dos monolitos aos microsserviços - PythonBrasil13
Dos monolitos aos microsserviços - PythonBrasil13Rael Max
 

Semelhante a Wordpress (20)

Wordpress - Além dos blogs
Wordpress - Além dos blogsWordpress - Além dos blogs
Wordpress - Além dos blogs
 
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
Melhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressMelhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPress
 
Roadshow Brasília Novas funcionalidades Liferay 6
Roadshow Brasília Novas funcionalidades Liferay 6Roadshow Brasília Novas funcionalidades Liferay 6
Roadshow Brasília Novas funcionalidades Liferay 6
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universo
 
Palestra wordpress - II forum revista espírito livre
Palestra wordpress - II forum revista espírito livrePalestra wordpress - II forum revista espírito livre
Palestra wordpress - II forum revista espírito livre
 
GUTENBERG EM PRODUÇÃO: QUALIDADES, DESAFIOS
GUTENBERG EM PRODUÇÃO: QUALIDADES, DESAFIOSGUTENBERG EM PRODUÇÃO: QUALIDADES, DESAFIOS
GUTENBERG EM PRODUÇÃO: QUALIDADES, DESAFIOS
 
Desenvolvendo websites com Drupal - IV ENSOL
Desenvolvendo websites com Drupal - IV ENSOLDesenvolvendo websites com Drupal - IV ENSOL
Desenvolvendo websites com Drupal - IV ENSOL
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
 
Postgresql 50 Sabores - PgDay Ceará 2013
Postgresql 50 Sabores - PgDay Ceará 2013Postgresql 50 Sabores - PgDay Ceará 2013
Postgresql 50 Sabores - PgDay Ceará 2013
 
Visao geralti netshoes04
Visao geralti netshoes04Visao geralti netshoes04
Visao geralti netshoes04
 
Visao geralti netshoes04
Visao geralti netshoes04Visao geralti netshoes04
Visao geralti netshoes04
 
Como escolher o tema ideal para o seu projeto
Como escolher o tema ideal para o seu projetoComo escolher o tema ideal para o seu projeto
Como escolher o tema ideal para o seu projeto
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPress
 
Dos monolitos aos microsserviços - PythonBrasil13
Dos monolitos aos microsserviços - PythonBrasil13Dos monolitos aos microsserviços - PythonBrasil13
Dos monolitos aos microsserviços - PythonBrasil13
 
Bancos de dados NoSQL
Bancos de dados NoSQLBancos de dados NoSQL
Bancos de dados NoSQL
 

Mais de Campus Party Brasil

Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosCampus Party Brasil
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Campus Party Brasil
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesCampus Party Brasil
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solarCampus Party Brasil
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custoCampus Party Brasil
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresCampus Party Brasil
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXCampus Party Brasil
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreCampus Party Brasil
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito ImpressoCampus Party Brasil
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasCampus Party Brasil
 

Mais de Campus Party Brasil (20)

Buracos negros
Buracos negrosBuracos negros
Buracos negros
 
Programação para Atari 2600
Programação para Atari 2600Programação para Atari 2600
Programação para Atari 2600
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivos
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdades
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solar
 
Passeio virtual pelo LHC
Passeio virtual pelo LHCPasseio virtual pelo LHC
Passeio virtual pelo LHC
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custo
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusiva
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectX
 
Blue Via
Blue ViaBlue Via
Blue Via
 
Linux para iniciantes
Linux para iniciantesLinux para iniciantes
Linux para iniciantes
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusiva
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software Livre
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito Impresso
 
Vida de Programador
Vida de Programador Vida de Programador
Vida de Programador
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendencias
 
Desafio Robótica Livre
Desafio Robótica LivreDesafio Robótica Livre
Desafio Robótica Livre
 

Wordpress

  • 1. WordPress Desenvolvimento de Sites e Redes Sociais Vinicius Massuchetto vinicius.soylocoporti.org.br    
  • 2. Um pouco sobre o WordPress ● ● Inicialmente uma plataforma para blogs ● ● 8 anos em 2011 ● ● 14.500 plugins ● ● 1.380 temas oficiais (funcionando) ● ● CMS aberto mais baixado em 2010 ● ● Empregado em 14% dos domínios mais populares    
  • 3. O WordPress é ... ● ● … interessante para o cliente ● ● … amigável ao usuário ● ● … mais fácil para o designer ● ● … ágil para o desenvolvedor ● ● … compatível com grandes tarefas    
  • 4. … interessante para o cliente    
  • 5. Facilidades para quem compra ● ● Hospedagem fácil e barata ● ● Estrutura SEO pronta ● ● Elaboração de portais unificados com múltiplos sites sob a mesma instalação ● ● Integração entre blogs, fóruns e rede social própria    
  • 6. … mais fácil para o designer    
  • 7. Design no WordPress ● ● Templates orientados por nomes padronizados dos arquivos ● ● Marcação simples em PHP ● ● Extensa e detalhada documentação ● ● Plugins que fazem quase de tudo ● ● Popularizado: Inúmeros exemplos e temas prontos pela internet (!) ● ● Diversos frameworks de temas    
  • 8. Marcação simples em PHP ● ● home_url() ● ● the_title() ● ● the_content() ● ● the_tags() ● ● wp_list_categories() ● ● while (have_posts()) { … }    
  • 9. Diversos frameworks de temas ● ● Funcionalidade de temas pais ● ● Estrutura pré-montada para modificação modular ● ● Callbacks para diferentes estágios de renderização do HTML    
  • 10.    
  • 11.    
  • 12.    
  • 13. … ágil para os desenvolvedores    
  • 14. Desenvolvimento no WordPress ● ● Interferência no comportamento padrão via callbacks (ações e filtros) ● ● Campos personalizados ● ● Tipos personalizados de conteúdo ● ● Estrutura pronta para cache em HTML estático    
  • 15. Hooks: Ações e filtros ● ● Verificações feitas em várias etapas do carregamento ● ● Mais de 1.500 chamadas diferentes (!) ● ● Suporte também presente em vários plugins    
  • 16. Hooks: Ações e filtros add_[action,filter]($tag,$func) Ações Filtros ● init ● ● the_content ● ● ● wp_head ● ● excerpt_length ● ● pre_get_posts ● ● posts_request ● ● shutdown ● ● wp_list_pages    
  • 17. Tipos de post e taxonomia ● ● Variações dos tipos padrão para: ● ● post (posts e páginas) post (posts e páginas) ● ● taxonomia (categorias e tags) taxonomia (categorias e tags) ● ● Tratamento de dados adicionais via campos personalizados ● ● Formatação para qualquer tipo de conteúdo desejado    
  • 18. Exemplo de posts e taxonomias ● ● Campeonato ● ● Campos: Título, times, duração … Campos: Título, times, duração … ● ● Taxonomia: Tipo de Campeonato Taxonomia: Tipo de Campeonato ● ● Time ● ● Campos: Nome, estádio, jogadores … Campos: Nome, estádio, jogadores … ● ● Taxonomia: Cidade Taxonomia: Cidade ● ● Jogador ● ● Campos: Nome, nascimento, peso, altura ... Campos: Nome, nascimento, peso, altura ... ● ● Taxonomia: Posição Taxonomia: Posição    
  • 19.    
  • 20. Multisite, BuddyPress e bbPress ● ● Vários blogs sob a mesma instalação, integrados em rede social e fórum ● ● Usuários independentes por blog e comuns nos fóruns e redes sociais ● ● Nomes dos blogs como subdomínios ou como subpastas    
  • 21.    
  • 22. … compatível com grandes tarefas    
  • 23. Problemas de desempenho ● ● 4258 funções, 187 classes, 5340 variáveis e 296 constantes ● ● Alocação de ~32MB por instanciação ● ● + plugins pode chegar até ~60MB + plugins pode chegar até ● ● Para grandes sites o uso de cache e estratégias de infraestrutura é obrigatório    
  • 24. Metodologias de desenvolvimento ● ● Layouts inteligentes ● ● Combinar imagens reduzindo requisições ● ● Evitar o uso de plugins ● ● Se possível, integrar nos temas as partes utilizadas dos plugins ● ● Proteger-se quanto a floods de comentários: WP Spam Free ● ● Seguir recomendações do Google com o Firebug    
  • 25. Uso de sistemas de cache ● ● Plugins como W3 Total Cache e WP Super Cache ● ● Geração de páginas estáticas e envio do HTML já pré compactado    
  • 26. Camadas de requisição ● ● nginx com Varnish ● ● Load Balancer ● ● Apache com memcached e WP Super Cache ● ● Processamento com MySQL HyperDB ● ● Servidor Emergencial: Manutenção de páginas estáticas por rsync    
  • 28. Alguns exemplos famosos ...    
  • 29.   TechCrunch TechCrunch  
  • 30.   Mashable Mashable  
  • 31.   CNN 40 blogs CNN 40 blogs  
  • 32.   91 Rock 30 blogs 91 Rock 30 blogs  
  • 33.   New York Times 70 blogs New York Times 70 blogs  
  • 34.   Adobe 1.200 blogs Adobe 1.200 blogs  
  • 35.   Globo.com 800 blogs Globo.com 800 blogs  
  • 36.   WordPress.com 20 milhões de blogs WordPress.com 20 milhões de blogs  
  • 37. Curiosidades WordPress.com ● ● Todos os plugins disponíveis são reescritos para adequação de desempenho ● ● Versão bleeding edge (mais atual que a disponível para download) ● ● Deploy contínuo via sandbox dos desenvolvedores ● ● Sem staging nem revisão de código    
  • 38. Curiosidades WordPress.com ● ● 200 comentários por minuto ● ● 250 posts por minuto ● ● 2.5 bilhões de visualizações por mês ● ● 1.500 servidores ● ● 4 datacenters ● ● 3 nuvens ● ● 1 codebase ● ● 1 banco de dados    
  • 39. Ou seja: É extremamente razoável usar o WordPress para tarefas críticas.    
  • 40. Obrigado! Vinicius Massuchetto    
  • 41. Referências ● ● wordpress.org ● ● wordpress.com/stats ● ● adambrown.info/p/wp_hooks/version/3.1 ● ● phpxref.ftwr.co.uk/wordpress ● ● curitiba.wordcamp.com.br/programacao