{"id":229707,"date":"2022-11-17T10:30:00","date_gmt":"2022-11-17T07:30:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229707"},"modified":"2022-11-17T18:57:25","modified_gmt":"2022-11-17T15:57:25","slug":"programacion-orientada-a-objetos-en-wordpress-analisis-parte-2","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/programacion-orientada-a-objetos-en-wordpress-analisis-parte-2\/","title":{"rendered":"Programaci\u00f3n Orientada a Objetos en WordPress: An\u00e1lisis, Parte 2"},"content":{"rendered":"\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/es\/programacion-orientada-a-objetos-en-wordpress-analisis-parte-1\/\" title=\"En la primera publicaci\u00f3n de esta serie\">En la primera publicaci\u00f3n de esta serie<\/a>, habl\u00e9 sobre c\u00f3mo quer\u00eda abordar una introducci\u00f3n a la programaci\u00f3n orientada a objetos en el contexto de WordPress.<\/p>\n<p>Hay algunos recursos excelentes para la programaci\u00f3n orientada a objetos, pero pueden usar ejemplos artificiales o pueden moverse demasiado r\u00e1pido para aquellos que solo buscan comenzar.<\/p>\n<p>En un intento por evitar que esto suceda, creo que hablar de OOP en WordPress nos ancla a una base s\u00f3lida y usar ejemplos pr\u00e1cticos siempre ser\u00e1 mejor que usar ejemplos gen\u00e9ricos que son dif\u00edciles de traducir al dominio en el que estamos trabajando.<\/p>\n<p>Para aquellos que <a href=\"https:\/\/tommcfarlin.com\/register\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">a\u00fan no se han unido<\/a> o que a\u00fan no se han puesto al d\u00eda, la primera publicaci\u00f3n aborda los siguientes temas:<\/p>\n<ul>\n<li>An\u00e1lisis Orientado a Objetos,<\/li>\n<li>Determinaci\u00f3n de lo imprescindible frente a lo agradable,<\/li>\n<li>\u00bfY por qu\u00e9 es dif\u00edcil?<\/li>\n<\/ul>\n<p>Y ah\u00ed es donde esta publicaci\u00f3n va a continuar.<\/p>\n<h2>Programaci\u00f3n Orientada a Objetos: M\u00e1s An\u00e1lisis<\/h2>\n<p>Lo s\u00e9: cuando se trata de escribir c\u00f3digo, lo primero que queremos hacer es sentarnos y comenzar a escribir c\u00f3digo. \u00bfQu\u00e9 es mejor que hacer que algo suceda en la pantalla?<\/p>\n<p>Y cuando est\u00e1s haciendo esto por ti mismo, no es gran cosa, pero cuando est\u00e1s escribiendo c\u00f3digo, va a ser:<\/p>\n<ul>\n<li>mantenido por un equipo de personas,<\/li>\n<li>en venta,<\/li>\n<li>o por todo lo anterior<\/li>\n<\/ul>\n<p>Hace la diferencia. Porque un buen an\u00e1lisis puede conducir a una buena organizaci\u00f3n que puede conducir a una buena mantenibilidad.<\/p>\n<p>De lo contrario, est\u00e1 improvisando algo para enviar, y no se escalar\u00e1 bien con versiones futuras. Y esto es algo de lo que hablaremos en profundidad a lo largo de la serie.<\/p>\n<p>Pero, \u00bfcu\u00e1l es una buena manera de resumir hacer un buen an\u00e1lisis en tres sencillos pasos? Esta no es necesariamente una respuesta a prueba de balas, pero es lo que tratamos de hacer siempre que estamos trabajando en proyectos:<\/p>\n<ol>\n<li>Aseg\u00farese de que el c\u00f3digo haga lo que el cliente quiere,<\/li>\n<li>Aplicar buenas pr\u00e1cticas orientadas a objetos,<\/li>\n<li>Apunta a un dise\u00f1o mantenible.<\/li>\n<\/ol>\n<p>Todo esto suena bien en teor\u00eda, pero sin profundizar en cada uno, \u00bfc\u00f3mo sabemos si lo estamos haciendo bien? En otras palabras, aqu\u00ed es donde a menudo encontramos libros, recursos y otras utilidades que dificultan convertirse en un mejor programador orientado a objetos.<\/p>\n<p>Eso es precisamente lo que quiero evitar, as\u00ed que voy a profundizar un poco m\u00e1s en cada punto.<\/p>\n<h3>1 Lo que el cliente quiere<\/h3>\n<p>Este puede ser uno de los aspectos m\u00e1s desafiantes de todo el proyecto a menudo porque nosotros, como desarrolladores, hablamos un idioma diferente al del cliente.<\/p>\n<p>No solo usar\u00e1n a menudo terminolog\u00eda que nosotros no usar\u00edamos, sino que a menudo piensan que lo que quieren en la pantalla es la mejor manera de hacerlo. Esto hace que suene realmente condescendiente e incorrecto tratar de corregirlos, \u00bfno es as\u00ed?<\/p>\n<p>Quiero decir, imagina tratar de decirle a alguien que sabes lo que quieres, y te corrige. Manejar esto con cuidado es algo que puede generar una gran equidad relacional, pero se necesita una cierta cantidad de tiempo para &quot;excavar&quot; lo que realmente quieren frente a lo que dicen que quieren.<\/p>\n<p>Y vamos a profundizar m\u00e1s en esto en una publicaci\u00f3n futura.<\/p>\n<h3>2 Pr\u00e1cticas Orientadas a Objetos<\/h3>\n<p>Obviamente, esto viene de saber cu\u00e1les son las buenas pr\u00e1cticas orientadas a objetos y eso es algo que planeo cubrir.<\/p>\n<p>Mucha gente dir\u00e1 cosas usando cosas como:<\/p>\n<ul>\n<li>los principios SOLIDOS,<\/li>\n<li>herencia,<\/li>\n<li>c\u00f3digo SECO,<\/li>\n<li>inyecci\u00f3n de dependencia,<\/li>\n<li>y as\u00ed<\/li>\n<\/ul>\n<p>Todos son importantes para seguir buenas pr\u00e1cticas orientadas a objetos.<\/p>\n<p>Y tal vez esto no sea algo popular para decir, pero tengo la mentalidad de que tratar de usar todas las cosas todo el tiempo no siempre es una buena idea. Es decir, definitivamente no desea que el c\u00f3digo se repita en su base de c\u00f3digo, pero \u00bftiene que tener herencia en su base de c\u00f3digo?<\/p>\n<p>No.<\/p>\n<p>Hay momentos en los que se deben aplicar los principios y en los que se pueden ignorar. Pero conocerlos, cu\u00e1ndo se usan mejor y cu\u00e1ndo usarlos es clave para usar dichas pr\u00e1cticas adecuadamente.<\/p>\n<h3>3 Dise\u00f1o Mantenible<\/h3>\n<p>En pocas palabras, aplicar patrones y principios a su software al escribirlo es lo que har\u00e1 que sea mucho m\u00e1s f\u00e1cil de usar y mantener en el futuro.<\/p>\n<p>Pero, de nuevo, esto depende de:<\/p>\n<ol>\n<li>entender completamente lo que el cliente quiere,<\/li>\n<li>saber qu\u00e9 pr\u00e1cticas existen, cu\u00e1ndo aplicarlas y cu\u00e1ndo evitarlas.<\/li>\n<\/ol>\n<p>Y para hacer todo lo anterior, debemos mirar cada punto dentro de su contexto antes de dar un paso atr\u00e1s para ver el panorama general.<\/p>\n<h2>\u00bfQu\u00e9 quiere el cliente?<\/h2>\n<p>Obviamente, hay mucho terreno por recorrer cuando se trata de los tres puntos anteriores. Pero si desea escribir un buen software que se pueda mantener dentro de la econom\u00eda de WordPress, es importante comprender c\u00f3mo encaja todo esto.<\/p>\n<p>Entonces, en lugar de adelantarnos a escribir c\u00f3digo o trabajar en un proyecto, lo siguiente que vamos a ver es c\u00f3mo tomar lo que el cliente quiere y luego descifrarlo en un conjunto de requisitos que nos permitan crear un Declaraci\u00f3n de trabajo.<\/p>\n<p>De esta manera, finalmente tendremos un documento de trabajo de lo que quiere el cliente y lo que vamos a construir, y todos estaremos en la misma p\u00e1gina.<\/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>Hablar de programaci\u00f3n orientada a objetos en WordPress nos ancla a una base s\u00f3lida y usar ejemplos pr\u00e1cticos siempre ser\u00e1 mejor que los gen\u00e9ricos.<\/p>\n","protected":false},"author":1,"featured_media":165340,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[892,716],"tags":[1172],"class_list":["post-229707","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-desarrollador","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229707","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=229707"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229707\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/165340"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=229707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=229707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=229707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}