Para muitas pessoas, o desenvolvimento em WordPress se resume em selecionar um tema bonito e encontrar alguns plugins funcionais.
Sinceramente (e bota sinceridade nisso!), o desenvolvimento em WP vai muito além de temas e plugins.
Na verdade, o desenvolvimento web como um todo não é tão simples mais. A tríade HTML, CSS e JavaScript ficou para trás.
Plataformas, ferramentas, frameworks, bibliotecas, ambientes, repositórios, linguagens, conceitos e várias outras coisas são pautas de discussões antes do início de cada projeto. Bem como durante e depois da entrega.
Temas e plugins WordPress
O WordPress de forma simplificada se resume em três partes: o core, o tema e os plugins em uso.
Os tipos de plugins WordPress não são conhecidos em sua totalidade pelos desenvolvedores e arquitetos de soluções.
Seu projeto digital e os plugins WP possivelmente terão três tipos de relacionamentos:
- Você encontrará o plugin perfeito e que atende exatamente a necessidade do projeto;
- Você precisará mudar algum conceito, ou regra de negócio do seu projeto, para usar o plugin X ou Y;
- Você desenvolverá um plugin para atender as suas regras de negócio.
Já os temas nem sempre são escolhidos como deveriam, ou seja, a estética deve ser um segundo critério de escolha, a primeira deve ser orientada pela arquitetura desejada.
E quando se trabalha com temas prontos, é preciso ficar atento a técnica suportada pelo WordPress através de Child Themes. Que nos possibilita trabalhar as personalizações sem comprometer o núcleo dos códigos e o impacto das atualizações futuras.
É muito comum termos um cenário híbrido, ou seja, consideramos o desenvolvimento do tema, de plugins e ainda selecionarmos alguns consagrados e úteis para o projeto em questão.
E se tratando de desenvolvimento em WordPress, é preciso considerar as stacks mais modernas e utilizadas no momento pelas equipes de desenvolvimento e infraestrutura.
A evolução das três camadas do desenvolvimento
Todo projeto digital se estrutura em três camadas clássicas: conteúdo (HTML), estilos (CSS) e comportamento (JavaScript).
Mas nos últimos anos essas camadas ganharam ramificações quase impossíveis de serem acompanhadas a fundo.
Isso trouxe grandes desafios e dedicação das equipes de desenvolvimento focadas no front-end.
A camada de conteúdo
O HTML é utilizado para dar significado semântico as informações dispostas nas páginas virtuais.
Mas a linguagem por si só, não é o suficiente. Então precisamos acrescentar o Schema.org, Microformats e derivados.
Além disso, precisamos estruturar meta informações para agentes externos, leia-se Facebook, Twitter, Google e dezenas de outros.
Para isso empregamos Open Graph, Twitter Cards, Accelerator Mobile Pages, Instant Articles, técnicas para otimizações destinadas aos buscadores e leitores de telas para acessibilidade.
Agora, assistimos a crescente da componetização. Todos os elementos da interface são tratados de forma isolada e, assim, reaproveitados em várias páginas.
O conceito é ótimo, mas exige novas tecnologias, aprendizados e, claro, deixa o desenvolvimento em WordPress mais complexo.
A camada de conteúdo está ainda mais parceira da camada de comportamento.
A camada de comportamento
A camada de comportamento tem o ponto central na JavaScript. A linguagem está presente em tudo e já é essencial em todos os projetos modernos.
Com a crescente dos componentes e, por conseguinte, da evolução da camada de View em JavaScript, surgem novas propostas de frameworks e bibliotecas.
A lista nesse segmento é imensa. Da popular jQuery, as mais recentes e queridinhas Meteor, Redux, React, Preact, Vue… E a lista continua.
A camada de estilo
Além da própria evolução da CSS, surgiram tecnologias para complementar o trabalho de deixarem as páginas mais bonitas e atrativas.
Compiladores como Less e SASS ajudam os desenvolvedores a ganharem agilidade, dinamizar o trabalho e, ao mesmo, tempo adicionar novas necessidades de uso como o Grunt, Gulp e outras técnicas.
Os desafios das equipes de back-end
Se a evolução das camadas de desenvolvimento trouxe novos desafios e cenários para as equipes de front-end, o mesmo aconteceu para com as focadas no back-end.
Conceitos e culturas como o DevOps, aproximou os desenvolvedores dos SysAdmin e trouxe ganhos e integrações incríveis entre as equipes para beneficiar o projeto e o workflow como um todo.
Projetos desenvolvidos em WordPress precisam ser estruturados em diferentes ambientes como o de desenvolvimento, homologação e produção.
Para isso acontecer de forma plena é preciso considerar, o conceito de Continuos Integration, bem como o uso de ferramentas como Git e Jenkins para organizarem e automatizarem os deploys entre os diferentes ambientes.
Plugins e temas WordPress podem ser desenvolvidos utilizando conceitos como MVC, adotando Coding Standards, Code Sniffer e soluções como Composer e CLI.
Cada um resolve um problema e adiciona uma necessidade a mais de estudo, configuração e ponto de atenção.
O core do WordPress é estruturado em banco de dados MySQL. Mas alguns projetos requerem outras soluções de armazenamento de dados e soluções como MongoDB e Redis, por exemplo, são adotados em paralelo.
O conceito de micro serviços e uso de APIs é constante. Cada tecnologia é inteligentemente escolhida para resolver um problema específico e assim termos a melhor solução para cada caso do projeto.
Com o constante uso de APIs se tornou necessário conhecer mais sobre o protocolo HTTP, o conceito de RESTfull e se aprofundar nas especificações do formato JSON.
Para cada era, um desafio diferente no desenvolvimento em WordPress
Desenvolvedores web lidam com diferentes padrões a cada era. Isso traz grandes impactos e desafios para o desenvolvimento em WordPress.
Vivemos a guerra dos browsers e a falta da adoção dos padrões da web. Hoje os impactos entre os navegadores de internet são minimizados já que a adoção aos web standards evoluiu consideravelmente.
Não bastasse os navegadores, tínhamos grandes desafios com as diferenças entre os sistemas operacionais: Windows, Linux e Mac, por exemplo.
Hoje, as diferenças entre os OS são menores. No entanto, além dos três mais utilizados nos desktops, temos a era mobile e novos sistemas como iOS, Android, Symbian e certamente outros que ainda surgirão.
Mas o grande desafio atual é a diversidade de tamanho de telas e dispositivos. Se pensarmos em smartphones, os tamanhos são diversos e cada aparelho tem dois tamanhos: um na orientação paisagem e outro no modo retrato.
Conclusão
O desenvolvimento em WordPress ficou complexo. Na verdade, o desenvolvimento web como um todo.
Isso exige mais estudos, maior envolvimento de horas técnicas e qualificação profissional. Precisamos ser assertivos com as escolhas e cuidado no planejamento para termos um resultado esperado.
Para cada problema atual, temos uma tecnologia para resolver o problema. Temos que escolher bem a solução, para cada solução há várias alternativas.
Algumas soluções são simples, outras complexas. Algumas com baixa curva de aprendizado, outras nem tanto. Algumas com boa aceitação de mercado, e em consequência profissionais especializados.
O desenvolvimento em WordPress precisa ser bem estruturado para resumir e simplificar como todos esperam, ou seja, um tema e alguns plugins.