Olá pessoal.
Eu (nós, como empresa) finalizamos a plataforma do fornecedor, a plataforma é um plugin para WordPress. Eu estou familiarizado com o frontend, JS, HTML, apenas na medida em que, portanto, as soluções acima podem não ser alfabetizadas, mas a essência do artigo não é essa .
O ponto principal é demonstrar claramente por que, às vezes, em vez de duas linhas de código, seria a decisão correta escrever duzentas.
Desenvolvedores iniciantes e desenvolvedores com experiência para quem esse pensamento parece duvidoso, pergunto em cat.
1. Introdução
Ler o artigo sem ler os comentários no código não faz sentido, porque os comentários no código não são duplicados no texto do artigo e o texto do artigo implica que o leitor tenha lido os comentários.
Desafio
Foi necessário fazer alterações no JS, faço as alterações em arquivos separados, para que o menos possível "polua" o código fonte do provedor da plataforma, para que no futuro seja mais fácil adaptar as atualizações da fonte da plataforma.
Assim, o código da nova funcionalidade está em novos arquivos que precisam ser carregados na página.
Tarefa: é necessário carregar determinados arquivos ao carregar a página.
A primeira panqueca é irregular
+<script src="e-cryptex.js"></script> +<script src="wp-content/themes/tol-child/js/child_realforex.js"></script>
(as linhas com "+" são novas linhas no código fonte)
A solução foi testada para a página principal e funcionou lá; posteriormente, para as páginas com o endereço example.com/about, a solução não funcionou, porque o navegador estava tentando carregar example.com/about/e-cryptex.js e o navegador recebeu um erro 404 , porque o arquivo realmente estava na raiz - example.com/e-cryptex.js.
Segunda opção
Eu observei como os desenvolvedores da plataforma se apegam à página:
wp_register_script(FILE-ID,FILE-PATH); wp_enqueue_script(FILE-ID);
Os arquivos são anexados usando a funcionalidade do WordPress - ok, vamos fazer o mesmo:
(linhas com "+" são novas linhas no código fonte, linhas com "-" são linhas excluídas do código fonte).
Verificado - funciona, aprox.
Havia duas linhas - eram 12, todas no mesmo arquivo.
Refatoração
Eu olhei para esse código e meu senso de beleza se rebelou:
- uma pessoa que não esteja familiarizada com o WordPress não entenderá nada - você deve entrar no diretório para entender o objetivo das funções wp_register_script () e wp_enqueue_script ()
- obviamente a mesma coisa é feita duas vezes seguidas, os argumentos são apenas diferentes - DRY é violado
Ok, refatorar.
Primeiro, criamos uma classe (um arquivo) e, em segundo lugar, conectamos e usamos a classe (alteramos outro arquivo).
Faça aula
+class Migesco { + + const SCRIPT = 'script'; + const SOURCE = 'source'; + const DEPENDENCY = 'dependency'; +
Nós conectamos e usamos
<?php
Havia 12 linhas de códigos-fonte em um arquivo, havia 35 e em dois (suporte posteriormente, procure troncos onde mais consertar, para não esquecer nada, não perder, não perder).
E refatorando novamente
Olhou para o novo código:
- alguns métodos estáticos
- algumas constantes ...
parece desajeitado! Lembro-me do seguinte conselho: "se o construtor não possui argumentos, essa classe é necessária?"
Vamos refazer, mas uma classe normal, com um construtor e métodos normais.
Class
Use
<?php
Você pode refatorar novamente (a plataforma roda no PHP 5.6 - eu adoraria definir os tipos em todos os lugares, mas infelizmente não é possível, você pode tornar a classe estática do Configurator mais humana, por exemplo, inicialize a partir de uma lista de arquivos - recursos da Web e o método attachFiles estático), mas as coisas ideais para um mundo ideal, vivemos no real, e ele faz suas próprias correções - o tempo gasto na tarefa - o trabalho na tarefa é interrompido.
Total: havia 35 linhas na fonte em dois arquivos, tornou-se ~ 170, também em dois arquivos.
O que conseguimos?
- Agora você não precisa acessar a ajuda do WordPress para entender a finalidade dos parâmetros "funções".
- Agora temos um invólucro para conectar arquivos e podemos alterar sem problemas o algoritmo para conectar arquivos - não precisamos editar todas as chamadas para wp_register_script e wp_enqueue_script
- Agora podemos mudar o WordPress para qualquer coisa e apenas a classe terá que reescrever
Registrador, não há necessidade de substituir todas as chamadas wp_register_script e wp_enqueue_script e seguir a lógica do WordPress.
Valeu a pena?
Cada um tem sua própria abordagem para apoiar a base de código e sua própria opinião.
Minha resposta é sim.