Refatorando plugins do WordPress: um pequeno exemplo
Uma das maneiras que os plugins do WordPress surgem é que, pelo menos no meu caso, eles começam como uma coleção de funções usadas para ajudar com um propósito específico para um determinado projeto. A partir daí, você pensa “Ei, talvez alguém ache isso útil".
Pelo menos essa tem sido a minha experiência mais frequentemente do que não.
Mas o problema é que antes de liberá-lo para outras pessoas tentarem, você quer passar pelo processo de limpeza do código. Também não estou falando de refatorar plugins do WordPress – pelo menos não ainda.
Estou falando sobre pegar o código, trazê-lo para algo que funcionará como um plugin do WordPress e, possivelmente, refatorar o código.
Refatorando plugins do WordPress
Passar por todo o processo de refatoração de plugins do WordPress – sem falar em um único plugin do WordPress – pode ser árduo, mas compartilhar como refatorar uma parte de um plugin é algo factível.
Então, eu estarei usando um exemplo de como eu estava usando algo recentemente (com o código um pouco abstrato para não me incomodar em ser específico sobre qualquer projeto).
Traçar a saída ideal de opções.
Antes de fazer isso, porém, acho importante compartilhar meu processo pode ser diferente – ou provavelmente – diferente do seu (já que muitos de nós temos processos diferentes).
- Projete o componente (sim, nem mesmo o plugin completo) em um notebook,
- Crie uma lista de verificação dos casos de uso em que deve passar e quando deve falhar,
- Escreva quais dados são necessários, como são necessários e quando devem ser ignorados
- Converta todos os itens acima em código.
Claro, eu não converto tudo literalmente em código, mas você entendeu. Talvez a maneira mais sucinta de colocar isso seja assim:
- Comece com um método longo que atenda ao caso de uso ideal. Em seguida, refatore esse código para que as funções sejam menores e considerem os casos em que o resultado falharia.
Dito isso, veja como o código pode ficar.
1 Escrevendo para o caso de uso ideal
Neste exemplo, o caso de uso ideal é quando o usuário carrega as opções, as opções estão presentes, e então ele precisa realizar uma ação se as opções tiverem determinados valores.
Essa parte deve ser fácil de ler, mas não explica nada, exceto o caminho ideal pelo código.
2 Fique um pouco na defensiva
Em seguida, gosto de ter certeza de que as opções estão definidas antes de tentar lê-las. Em alguns casos, você pode querer exibir um aviso, lançar uma exceção ou registrar informações.
Neste exemplo, vou retornar, pois é fácil de ler e pode ser ajustado com mais facilidade para seu uso.
Então, isso lida com as opções, mas e o caso em que as opções são definidas, mas não têm os valores que esperamos? Isso significa que também precisamos verificar se eles fazem isso. E, se não, ignore-os, retorne, registre um erro, lance uma exceção e assim por diante.
Você sabe: A mesma coisa que acima. Exceto, neste caso, eu não vou tomar nenhuma ação a menos que o código tenha a informação ideal.
3 Ficando um pouco longo
Neste ponto, o método está ficando um pouco longo e está se tornando mais difícil de ler. Claro, se você é um programador experiente, pode argumentar que “Isto é código, não é inglês”, mas por que não tentar torná-lo um pouco mais fácil de seguir?
Além disso, torna um pouco mais fácil de testar. Mas isso está além do escopo deste post. Tome a avaliação de opções como o primeiro exemplo do código.
- Isso é algo que pode ser envolvido em sua função que não apenas isola essa verificação, mas também torna a chamada resultante um pouco mais fácil.
- Em seguida, pegue o segundo bloco de código que verifica os valores de opção ideais. Isso também pode ser abstraído pelas mesmas razões acima.
- E, finalmente, configure uma função para garantir que os valores esperados sejam definidos para cada um dos valores especificados :
Então agora você tem dois métodos menores encapsulando a mesma verificação que você estava fazendo.
4 A Função Final
Neste ponto, a função final é muito mais fácil de ler, pois possui duas funções auxiliares que encapsulam suas responsabilidades enquanto esta volta a avaliar o caminho ideal pelo código:
Basta dizer que, quando se trata de refatorar plugins do WordPress, este é apenas um exemplo de como fazer apenas um segmento dele. Mas é um começo, certo?
Plugins inteiros?
Eu sei direito? Refatorar plugins do WordPress não é brincadeira. Mas se você começar com pequenas funções como essa e gradualmente trabalhar na base de código, fica mais fácil.
E se você gastar tempo planejando o projeto desde o início, pode economizar muito tempo voltando e refatorando esse tipo de coisa.