{"id":231171,"date":"2022-12-14T17:51:00","date_gmt":"2022-12-14T14:51:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231171"},"modified":"2022-12-07T11:35:05","modified_gmt":"2022-12-07T08:35:05","slug":"simplesmente-refatorando-codigo-baseado-em-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/simplesmente-refatorando-codigo-baseado-em-wordpress\/","title":{"rendered":"Simplesmente refatorando c\u00f3digo baseado em WordPress"},"content":{"rendered":"<p>Em 2011, eu estava lendo muito sobre como trabalhar com c\u00f3digo legado, qualidade de c\u00f3digo e refatora\u00e7\u00e3o.<\/p>\n<p>H\u00e1 uma cita\u00e7\u00e3o de <strong><a href=\"https:\/\/martinfowler.com\/bliki\/OpportunisticRefactoring.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Martin Fowler<\/a><\/strong> (que literalmente <strong><a href=\"https:\/\/martinfowler.com\/books\/refactoring.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">escreveu o livro<\/a><\/strong> sobre refatora\u00e7\u00e3o) atribu\u00edda ao <a href=\"https:\/\/twitter.com\/unclebobmartin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tio Bob<\/a> que ficou comigo \u2013 e tenho certeza que muitos, muitos programadores \u2013 desde ent\u00e3o:<\/p>\n<blockquote>\n<p>sempre deixe o c\u00f3digo para tr\u00e1s em um estado melhor do que voc\u00ea o encontrou<\/p>\n<\/blockquote>\n<p>A coisa sobre essa ideia em particular \u00e9 que eu acho que pode soar um pouco mais idealista at\u00e9 voc\u00ea realmente come\u00e7ar a tentar pratic\u00e1-la em tudo o que voc\u00ea faz.<\/p>\n<p>Ou seja, se voc\u00ea considerar o valor nominal, parece que a qualquer momento voc\u00ea precisa trabalhar em uma base de c\u00f3digo, ent\u00e3o voc\u00ea precisa deixar a base de c\u00f3digo inteira melhor do que quando a encontrou. Mas quanto mais eu tentei aplicar essa regra no meu trabalho di\u00e1rio, mais pr\u00e1tico, mais limpo e mais f\u00e1cil de manter o c\u00f3digo espec\u00edfico do WordPress se tornou.<\/p>\n<p>Ent\u00e3o, quando se trata de refatorar c\u00f3digo baseado em WordPress, como \u00e9 isso?<\/p>\n<p>Este n\u00e3o ser\u00e1 um post longo. Em vez disso, vou simplesmente compartilhar alguns pontos que sigo quando se trata de trabalhar no c\u00f3digo que escrevi anteriormente, que encontrei de outras pessoas ou que \u00e9 de uma base de c\u00f3digo na qual trabalhei com outras pessoas no passado.<\/p>\n<p>Em nenhuma ordem particular:<\/p>\n<ul>\n<li><strong>N\u00e3o seja idealista; Seja pr\u00e1tico<\/strong>. Refatorar uma base de c\u00f3digo inteira n\u00e3o \u00e9 uma pr\u00e1tica, especialmente se a base de c\u00f3digo n\u00e3o estiver envolvida em testes de unidade. Observe o c\u00f3digo em que voc\u00ea est\u00e1 trabalhando e veja quais pequenas modifica\u00e7\u00f5es voc\u00ea pode fazer para melhor\u00e1-lo.<\/li>\n<li><strong>Use os padr\u00f5es mais recentes<\/strong>. Voc\u00ea n\u00e3o precisa configurar um ambiente de desenvolvimento totalmente novo para c\u00f3digo antigo. Em vez disso, apenas certifique-se de ter bons sniffers de c\u00f3digo no lugar. Se voc\u00ea mudou dos Padr\u00f5es de Codifica\u00e7\u00e3o do WordPress para o PSR, observe os avisos ou avisos que os sniffers lan\u00e7am e tente atualizar o c\u00f3digo apenas nesse arquivo (ou conjunto de arquivos).<\/li>\n<li><strong>Fun\u00e7\u00f5es Auxiliares de Grava\u00e7\u00e3o<\/strong>. Se suas fun\u00e7\u00f5es forem muito longas, procure maneiras de torn\u00e1-las mais f\u00e1ceis de trabalhar. Primeiro, atualize quaisquer estruturas de controle, como loops ou condicionais, e escreva fun\u00e7\u00f5es auxiliares para facilitar a leitura.<\/li>\n<li><strong>Adicionar testes (quando poss\u00edvel)<\/strong>. Se voc\u00ea j\u00e1 tiver uma estrutura de teste de unidade, adicione testes para seu novo c\u00f3digo. Se voc\u00ea n\u00e3o tem tempo ou n\u00e3o tem estrutura, n\u00e3o se preocupe. Por mais que os programadores pragm\u00e1ticos preguem, nem sempre h\u00e1 tempo para adicionar testes. (Isso n\u00e3o \u00e9 para ser uma declara\u00e7\u00e3o de que eles n\u00e3o s\u00e3o \u00fateis ou n\u00e3o devem ser inclu\u00eddos, mas que nem sempre \u00e9 pr\u00e1tico incorpor\u00e1-los a qualquer momento).<\/li>\n<\/ul>\n<p>Algumas das coisas que me vi fazendo em projetos recentes tamb\u00e9m incluem coisas simples:<\/p>\n<ul>\n<li>atualizando nomes de vari\u00e1veis \u200b\u200be fun\u00e7\u00f5es para seguir o PSR,<\/li>\n<li>mudando tabs para espa\u00e7os,<\/li>\n<li>adicionando fun\u00e7\u00f5es auxiliares para tornar as condi\u00e7\u00f5es e os loops mais leg\u00edveis,<\/li>\n<li>dividir as classes para que elas tenham um maior grau de coes\u00e3o,<\/li>\n<li>melhorar os docblocks de cada fun\u00e7\u00e3o<\/li>\n<\/ul>\n<p>Estes s\u00e3o apenas alguns exemplos e esta n\u00e3o \u00e9 claramente uma lista exaustiva. Mas esse n\u00e3o \u00e9 o ponto. Em vez disso, estou procurando simplesmente compartilhar como voc\u00ea pode aplicar refatora\u00e7\u00e3o de c\u00f3digo baseado em WordPress ao mesmo tempo em que realiza seu trabalho di\u00e1rio de maneira gerenci\u00e1vel.<\/p>\n<p>Todas as altera\u00e7\u00f5es ou recomenda\u00e7\u00f5es acima s\u00e3o coisas que geralmente podem ser feitas com a ajuda do IDE, alguns atalhos e talvez meia hora de tempo extra (e estou sendo liberal com essa estimativa).<\/p>\n<p>Ent\u00e3o, n\u00e3o, voc\u00ea n\u00e3o precisa reescrever uma base de c\u00f3digo inteira. Eu nem sei se esse \u00e9 um objetivo pr\u00e1tico para o qual almejar. Mas voc\u00ea pode consertar uma pequena parte do sistema geral pelo qual voc\u00ea \u00e9 respons\u00e1vel?<\/p>\n<p>E por que n\u00e3o, pelo menos, apontar para isso?<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quanto mais eu tento aplicar isso no meu trabalho di\u00e1rio, melhor meu c\u00f3digo se torna. Quando se trata de refatorar c\u00f3digo baseado em WordPress, como \u00e9 isso?<\/p>\n","protected":false},"author":1,"featured_media":235914,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,722,846,867],"tags":[1170],"class_list":["post-231171","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=231171"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231171\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/235914"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=231171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=231171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=231171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}