WordPress
Transcrição
WordPress
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 ● ● ● ● Marcação simples em PHP ● ● Extensa e detalhada documentação ● ● Plugins que fazem quase de tudo ● ● ● ● Templates orientados por nomes padronizados dos arquivos 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 ● ● ● ● Campos personalizados ● ● Tipos personalizados de conteúdo ● ● Interferência no comportamento padrão via callbacks (ações e filtros) 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 ● ● init Filtros ● ● 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 post (posts (posts ee páginas) páginas) taxonomia taxonomia (categorias (categorias ee tags) tags) Tratamento de dados adicionais via campos personalizados Formatação para qualquer tipo de conteúdo desejado Exemplo de posts e taxonomias ● ● Campeonato ● ● ● ● ● ● Time ● ● ● ● ● ● Campos: Campos: Nome, Nome, estádio, estádio, jogadores jogadores … … Taxonomia: Taxonomia: Cidade Cidade Jogador ● ● ● ● Campos: Campos: Título, Título, times, times, duração duração … … Taxonomia: Taxonomia: Tipo Tipo de de Campeonato Campeonato Campos: Campos: Nome, Nome, nascimento, nascimento, peso, peso, altura altura ... ... Taxonomia: Taxonomia: Posição 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 plugins pode pode chegar chegar até até ~60MB 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 blogs CNN 40 91 30 blogs blogs 91 Rock Rock 30 New 70 blogs blogs New York York Times Times 70 Adobe 1.200 blogs blogs Adobe 1.200 Globo.com 800 blogs blogs Globo.com 800 WordPress.com 20 milhões milhões de blogs de blogs WordPress.com 20 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