{"id":230791,"date":"2022-12-14T17:48:00","date_gmt":"2022-12-14T14:48:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230791"},"modified":"2022-12-07T11:35:01","modified_gmt":"2022-12-07T08:35:01","slug":"simplemente-refactorizando-el-codigo-basado-en-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/simplemente-refactorizando-el-codigo-basado-en-wordpress\/","title":{"rendered":"Simplemente refactorizando el c\u00f3digo basado en WordPress"},"content":{"rendered":"\n<p>En 2011, estaba leyendo mucho sobre el trabajo con c\u00f3digo heredado, la calidad del c\u00f3digo y la refactorizaci\u00f3n.<\/p>\n<p>Hay una cita de <strong><a href=\"https:\/\/martinfowler.com\/bliki\/OpportunisticRefactoring.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Martin Fowler<\/a><\/strong> (quien literalmente <strong><a href=\"https:\/\/martinfowler.com\/books\/refactoring.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">escribi\u00f3 el libro<\/a><\/strong> sobre la refactorizaci\u00f3n) atribuida al <a href=\"https:\/\/twitter.com\/unclebobmartin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00edo Bob<\/a> que se me qued\u00f3 grabada, y estoy seguro de que a muchos, muchos programadores, desde entonces:<\/p>\n<blockquote>\n<p>siempre deje el c\u00f3digo atr\u00e1s en un mejor estado de lo que lo encontr\u00f3<\/p>\n<\/blockquote>\n<p>Lo que pasa con esta idea en particular es que creo que puede sonar un poco m\u00e1s idealista hasta que realmente comiences a tratar de practicarla en todo lo que haces.<\/p>\n<p>Es decir, si lo toma al pie de la letra, parece que cada vez que necesita trabajar en una base de c\u00f3digo, entonces debe dejar la base de c\u00f3digo completa mejor que cuando la encontr\u00f3. Pero cuanto m\u00e1s intento aplicar esta regla en mi trabajo diario, m\u00e1s pr\u00e1ctico, m\u00e1s limpio y m\u00e1s f\u00e1cil de mantener se vuelve el c\u00f3digo espec\u00edfico de WordPress.<\/p>\n<p>Entonces, cuando se trata de refactorizar el c\u00f3digo basado en WordPress, \u00bfc\u00f3mo se ve eso?<\/p>\n<p>Esta no va a ser una publicaci\u00f3n larga. En cambio, simplemente voy a compartir algunos puntos que sigo cuando se trata de trabajar en c\u00f3digo que he escrito previamente, que encuentro de otros, o que es de una base de c\u00f3digo en la que he trabajado con otros en el pasado.<\/p>\n<p>Sin ning\u00fan orden en particular:<\/p>\n<ul>\n<li><strong>No seas idealista; Sea pr\u00e1ctico<\/strong>. La refactorizaci\u00f3n de una base de c\u00f3digo completa no es algo pr\u00e1ctico, especialmente si la base de c\u00f3digo no est\u00e1 envuelta en pruebas unitarias. Mire el c\u00f3digo en el que est\u00e1 trabajando y vea qu\u00e9 modificaciones menores puede hacer para mejorarlo.<\/li>\n<li><strong>Utilice los \u00faltimos est\u00e1ndares<\/strong>. No necesita configurar un entorno de desarrollo completamente nuevo para el c\u00f3digo anterior. En su lugar, solo aseg\u00farese de tener buenos rastreadores de c\u00f3digo en su lugar. Si ha pasado de los est\u00e1ndares de codificaci\u00f3n de WordPress a PSR, mire las advertencias o avisos que arrojan los rastreadores e intente actualizar el c\u00f3digo solo en ese archivo (o conjunto de archivos).<\/li>\n<li><strong>Escribir funciones auxiliares<\/strong>. Si sus funciones son demasiado largas, busque formas de hacer que sea m\u00e1s f\u00e1cil trabajar con ellas. Primero, actualice cualquier estructura de control como bucles o condicionales, luego escriba funciones auxiliares para que sean m\u00e1s f\u00e1ciles de leer.<\/li>\n<li><strong>Agregar pruebas (cuando sea posible)<\/strong>. Si ya tiene un marco de pruebas unitarias, agregue pruebas para su nuevo c\u00f3digo. Si no tienes el tiempo o no tienes el marco, no te preocupes. Por mucho que lo prediquen los programadores pragm\u00e1ticos, no siempre hay tiempo para agregar pruebas. (Esto no quiere decir que no sean \u00fatiles o que no deban incluirse, sino que no siempre es pr\u00e1ctico incorporarlos en un momento dado).<\/li>\n<\/ul>\n<p>Algunas de las cosas que me he encontrado haciendo en proyectos recientes tambi\u00e9n incluyen cosas simples:<\/p>\n<ul>\n<li>actualizando nombres de variables y funciones para seguir PSR,<\/li>\n<li>cambiando tabulaciones a espacios,<\/li>\n<li>agregar funciones auxiliares para que las condiciones y los bucles sean m\u00e1s legibles,<\/li>\n<li>dividir las clases para que tengan un mayor grado de cohesi\u00f3n,<\/li>\n<li>mejorar los docblocks de cada funci\u00f3n<\/li>\n<\/ul>\n<p>Estos son solo algunos de los ejemplos y claramente no es una lista exhaustiva. Pero ese no es el punto. En su lugar, estoy buscando simplemente compartir c\u00f3mo puede aplicar la refactorizaci\u00f3n del c\u00f3digo basado en WordPress mientras realiza su trabajo diario de una manera manejable.<\/p>\n<p>Todos los cambios o recomendaciones anteriores son cosas que generalmente se pueden hacer con la ayuda del IDE, algunos atajos y tal vez con media hora de tiempo adicional (y estoy siendo generoso con esa estimaci\u00f3n).<\/p>\n<p>Entonces, no, no tiene que volver a escribir un c\u00f3digo base completo. Ni siquiera s\u00e9 si ese es un objetivo pr\u00e1ctico al que apuntar. \u00bfPero puedes arreglar una peque\u00f1a parte del sistema general del que eres responsable?<\/p>\n<p>\u00bfY por qu\u00e9 no al menos aspirar a eso?<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cuanto m\u00e1s trato de aplicar esto en mi trabajo diario, mejor se vuelve mi c\u00f3digo. Cuando se trata de refactorizar c\u00f3digo basado en WordPress, \u00bfc\u00f3mo se ve eso?<\/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":[892,716,840,861],"tags":[1172],"class_list":["post-230791","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-desarrollador","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/230791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=230791"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/230791\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/235914"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=230791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=230791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=230791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}