Já faz um tempo que me pergunto o que bons desenvolvedores WordPress devem saber e decidi escrever este texto para me ajudar a encontrar a resposta. O principal objetivo é conseguir direcionar meus estudos para ser um melhor desenvolvedor WordPress, assim como me ajudar a identificar outros profissionais para trabalhar comigo ou recomendá-los.

Baseado na minha experiência com o WordPress, desde 2009, criei uma lista de itens que considero importante saber.

Ambiente de desenvolvimento local específico por projeto

Quando comecei a utilizar o WordPress, um dos primeiros grandes desafios foi aprender como instalar e configurar todos os requisitos para executá-lo no meu computador. Uma vez superado, era algo que eu só me preocupava novamente quando decidia formatar o computador.

Com o passar dos anos aprendi que alguns problemas (bugs) só acontecem em algumas configurações específicas de servidor e a maneira mais fácil de resolvê-los era ter um ambiente de desenvolvimento local o mais parecido possível com o de produção. Ter que ficar desinstalando, instalando e configurando todo o ambiente de desenvolvimento local toda vez que eu ia criar um site para um servidor de hospedagem com configurações diferentes, é completamente inviável.

Sem falar que quando comecei a trabalhar com outros desenvolvedores que utilizavam configurações e sistemas operacionais diferentes do meu, a situação complicava ainda mais. A frase “mas no meu computador funciona” nunca deve ser dita como uma resposta para um problema, mas sim como um pontapé inicial para tentar achar a resposta do porque algo só funciona em determinados casos.

Para resolver este problema, é possível utilizar o Docker para ter um ambiente de desenvolvimento isolado, com configurações específicas para um determinado projeto. É importante estar familiarizado com essa solução, pois é a utilizado oficialmente pela comunidade de WordPress.

Padrões de código

O WordPress possui padrões de código para PHP, CSS e JavaScript e utilizá-los é essencial para manter o código consistente e legível para outros desenvolvedores. Este ponto acaba sendo um grande diferencial, pois infelizmente não são muitos desenvolvedores que se preocupam com este requisito. Isso geralmente acontece quando se pensa apenas na entrega final de um projeto, sem a preocupação com o trabalho que futuros desenvolvedores terão naquele código.

Por experiência própria, sei que prazos muitas vezes são curtos e algo assim pode parecer uma “perda de tempo”. Todo mundo que já trabalhou muitas vezes em códigos de outras pessoas, sabe quanta diferença isso faz. Mesmo sabendo disso, até agora ainda não resolvi esta pendência, mas farei o mais rápido possível.

Ter um editor de código bem configurado é um requisito para seguir os padrões. Conhecer bem como ele pode ajudar para facilitar outras tarefas é também muito importante. Por isso também quero aprender mais sobre o Visual Studio Code, que é o software que utilizo.

Sistemas de controle de versões

Acredito que sistemas de controle de versão são um dos pilares que possibilitam o desenvolvimento coletivo, sem falar que são essenciais para manter minha sanidade um bom controle sobre as alterações de código e não ter mais que ficar utilizando arquivos com nomes como: index2.php, index3.php, index-original.php, entre outros.

O WordPress utiliza oficialmente o Subversion, mais conhecido como SVN, e vários plugins e temas utilizam o Git, devido à muitas melhorias que ele oferece em relação ao primeiro. A escolha da segunda opção envolve o trabalho de replicar tudo para o SVN para que seja enviado ao repositório oficial, porém o custo disso ainda é pequeno em relação as vantagens que o Git oferece.

Algumas coisas que considero importante saber:

  • Fazer forks e pull requests;
  • Usar branches e tags;
  • Lidar com conflitos ao fazer merge;
  • Escrever boas mensagens de commit;

Domínio técnico sobre o WordPress

Para ser um bom desenvolvedor WordPress, é necessário saber mais do que o básico de HTML, CSS, PHP e JavaScript. É muito importante conhecer as boas práticas de cada um deles e estar bem familiarizado com a estrutura do WordPress. Como este é um dos tópicos mais extensos, achei melhor criar uma lista com alguns dos itens mais importantes para cada um.

  • HTML
    • HTML 5;
    • SEO técnico;
  • CSS
    • Pré-processadores (principalmente Sass);
    • CSS Grid e Flexbox;
    • Estilos de escrita de CSS (OOCSS, SMACSS, BEM, ..);
    • Suporte a vários navegadores;
  • PHP
    • Programação orientada a objetos;
    • Boas práticas de segurança;
    • Performance;
  • WordPress
    • Estrutura de arquivos, diretórios e banco de dados;
    • Hooks: actions e filters;
    • CPT e taxonomies;
    • Funções (ex: wp_list_pluck) e constantes genéricas (ex: MINUTE_IN_SECONDS);
    • Rest API;
    • WP-CLI;
    • Gutenberg;
  • JavaScript
    • ES6;
    • React;
  • Outros
    • Servidor (Apache ou NGINX): configuração básica, códigos de redirecionamento e resposta;
    • Banco de dados SQL (MariaDB): criação, consulta e edição de tabelas e registros.

Fluência em Inglês

O idioma oficial do WordPress e da maioria do material criado sobre ele, é em inglês, por isso é muito importante estar confortável para ler e escrever neste idioma. As principais atividades são ler e escrever documentações (dentro e fora do código) e trocar mensagens (e-mail, chat ou fórum).

Uma ferramenta utilizo para me ajudar nisso é o Grammarly, um verificador de gramática on-line (com plano gratuito) que vai muito além da correção de palavras específicas e tem integração com os principais navegadores.

Participar da comunidade de WordPress

Por incrível que pareça, conheço poucos desenvolvedores que participam de forma ativa na comunidade de WordPress do Brasil e este é o primeiro lugar que me vem na cabeça quando penso em contratar e indicar um profissional. Então se destacar neste ambiente não é difícil e pode abrir muitas oportunidades. Além disso, o perfil público de usuário do WordPress.org é um ótimo complemento para o seu portfólio.

Sei que participar de uma comunidade exige tempo, então se você puder dedicar apenas algumas horas por mês, recomendo ir em um dos encontros presenciais de WordPress (também conhecidos como meetups). Para saber como participar mais ativamente, veja o guia oficial da comunidade Brasileira.

Importante: A comunidade é formada inteiramente por voluntários, então a motivação principal por trás de cada ação deve ser não comercial.

Resumo

Para resumir, agrupei todos os itens em uma lista mais geral:

  1. Ambiente de desenvolvimento local com Docker;
  2. Seguir os padrões de código do WordPress (PHP, CSS e JS);
  3. Usar sistemas de controle de versões (Git e SVN);
  4. Domínio técnico sobre o WordPress;
  5. Ter fluência no inglês;
  6. Participar da comunidade de WordPress.

Atenção: a ideia desta lista é estar em constante atualização e gostaria muito da sua ajuda nos comentários para entender o que você considera que bons desenvolvedores WordPress devem saber.

Para ajudar a se aprofundar nos itens acima, de uma maneira mais prática, escrevi o post projetos para aprender a desenvolver no WordPress.

Extra: Palestra no meetup da comunidade de WordPress São Paulo

No dia 14 de abril de 2020 fiz uma palestra gratuita e on-line sobre os tópicos deste texto no meetup da comunidade de WordPress São Paulo. Você pode assistir ela na íntegra abaixo:



Comments

5 respostas para “O que bons desenvolvedores WordPress devem saber?”

  1. Para configurar o Code Standards utilizei como base estes dois artigos, para automatizar o processo:

    https://webdevstudios.com/2017/04/06/lint-code-like-boss/
    http://numediaweb.com/php-code-beautifier-phpstorm/1616 (Correção do Path, no meu caso, precisei disso para utilizar no VS Code).

    Tem utilizado algum gerenciador de tarefas? Gosto da forma que o Gulp trabalha, embora não tenha implementado ele no meu ambiente ainda.

    E por falar em Docker, tenho utilizado o Easy Engine no meu ambiente local, que agora na V4 é baseado em Docker, embora eu ainda prefira a versatilidade do fork da V3 (WordOps).

    1. Obrigado pelas referências! Vou ver elas com calma.

      Eu usava o Grunt antigamente, mas estou utilizando o Gulp agora. Gosto dos dois e é bem útil entender um pouco mais como montar um arquivo de configuração para automatizar algumas tarefas repetitivas.

      Estou aprendendo mais como usar o Docker para não ter que depender de outras ferramentas, em breve vou escrever mais sobre isso.

  2. Conhecimentos sobre MySQL e Apache não são necessários?

    1. Bem lembrado, são sim! Já atualizei o conteúdo para adicionar esses itens, com alguns detalhes de cada um. Obrigado!

  3. Avatar de gustavoabadiepfc
    gustavoabadiepfc

    Muito obrigado por este trilho de treinamento. Estava atrás de algo assim, se tiveres mais algumas sugestões, eu aceito de bom grado.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *