en este vídeo te voy a enseñar cómo programar mejor aplicando principios de código limpio hay muchísimas maneras de conseguir que tu código se entienda mejor pero en este vídeo me voy a centrar en las más sencillas y efectivas mi nombre es diego castaño soy ingeniero web y hoy te voy a enseñar tres trucos super fáciles que puedes aplicar desde ahora mismo para mejorar enormemente tu código [Música] el código limpio es aquel que es fácil de entender y modificar por cualquier programador el término código limpio como tal lo popularizó robert martin más conocido como el tío go la idea principal es que debemos escribir código para que pueda ser leído y de vez en cuando ejecutado de este modo un buen indicador de calidad del código es la cantidad de wat de fax que produce en el lector si quieres ser un buen programador y dedicarte al software es imprescindible que te lea su libro klinko puedes comprar el libro electrónico en amazon en el link que he dejado en la descripción del vídeo este libro tiene más de 400 páginas y en ellas encontrarás multitud de técnicas para mejorar y limpiar tu código sin duda deberías leer este libro pero también es cierto que es muy extenso y bastante técnico por eso me ha parecido buena idea aplicar el principio de pareto al código limpio el principio de pareto dice que tan sólo un 20 por ciento del esfuerzo que hagas será el responsable de un 80 por ciento de los resultados por eso en este vídeo en ese pequeño número de cambios fáciles que puedes hacer para mejorar enormemente tu código para explicar estos cambios voy a utilizar como ejemplo esta pequeña aplicación web que he hecho que se trata de una granja tiene una serie de animales muestra por pantalla los sonidos que hace encuentra cuál es el animal que hace el sonido más corto qué es la vaca y los sonidos qué hacen los animales pero invertidos ahora mismo la aplicación está hecha con un código bastante malo pero vamos a ver paso a paso cómo convertirlo en código limpio lo he resumido en tres consejos prácticos número uno no pongas comentarios en tu código es posible que vaya en contra de lo que te han enseñado pero muchas veces el tener muchos comentarios son en nuestro código es síntoma de que lo estamos haciendo mal es preferible tener un código auto explicativo y que se entienda al tener un mal código comentado es muy raro que sea necesario poner comentarios en tu código salvo casos extremos como que estés programando una app y una interfaz pública que van a usar otros programadores no deberías poner comentarios en tu código y ahora vamos a ver algunos ejemplos de comentarios que no deberían estar en el código a la izquierda tenemos la clase principal del código malo y a la derecha tenemos esa misma clase pero mejorada la versión de código limpio podemos encontrar un primer comentario encima de esta clase que se llama animal en menezes m pero no se entiende nada y por tanto hace falta un comentario que nos explique es un componente que gestiona los animales de una granja cómo podemos mejorar esto pues quitando ese comentario y poniendo un buen nombre a la clase como por ejemplo granja component siguiendo la convención de angular de que los componentes terminan en component y que el nombre debe explicar lo que es desde un animal manager podemos poder decir que es una granja no tengas miedo de utilizar palabras que se entiendan más abajo nos encontramos con otro comentario que está encima de este código misterioso que se llama off y dice encuentra al animal con el sonido más corto es realmente necesario este comentario o bastaría simplemente con como vemos aquí renombrar la función guetta animal con sonido más corto y ya está no hace falta el comentario debajo vemos que hay otro más que dice ordenamos los animales la longitud de sus cantos que este es otro tema hay veces que los comentarios ni siquiera van a estar bien escritos cuando añades comentarios a un código y estás añadiendo complejidad y ya no solo tienes que mantener ese código en el futuro sino que tienes que encargarte de que actualizar los comentarios y asegurarte de que concuerdan con cada cambio que haces en el resto del código como nos podemos librar de este comentario pues poniendo buenos nombres de variable en vez de esta misteriosa variable o podemos utilizar animales ordenados y en vez de meter aquí [Música] a piñón el código de una función lo podemos extraer a un método que se llame comparar longitud de sonido y se entiende muchísimo y aquí tenemos otro ejemplo típico de comentario que es un mito es un comentario que no aporta absolutamente nada por tanto ni siquiera podemos saber qué es lo que hace este método si leemos los comentarios que hay dentro ya si podemos hacernos una idea y aquí pone ordenamos los animales la longitud de sus cantos que es lo mismo que ponía arriba bueno nos ocuparemos de los duplicados más adelante por ahora vamos a cambiarlo igual que hemos hecho antes por un buen nombre de variables animales ordenados debajo pone devuelve el array con las cadenas dadas la vuelta esto se entiende mucho mejor si simplemente sacamos este código de aquí a otro método que se llame invertir sonido recibe una cadena con el sonido y le da la vuelta como veis la clase con el código limpio tiene más métodos con nombres más largos y específicos que describen lo que hacen pero los métodos son más cortos porque hacen una sola cosa número 2 evita el copy pasteur evita copiar y pegar código a toda costa porque cuando lo haces estás duplicando código y si en el futuro quieres cambiar la manera en que funciona ese código vas a tener que hacer muchos cambios en distintos sitios si es necesario compra una batería de coche conecta un polo a la tecla control y otro a la tecla v lo que sea necesario para recordar que no debes hacer copy-paste en el lado izquierdo en el código malo podemos ver un ejemplo de lo que pasa cuando haces copypaste esta función de aquí y esta de aquí tienen código idéntico que utilizan para ordenar los animales en función de la longitud de sus sonidos en la versión de código limpio lo que se ha hecho es extraer esta comparación de animales por su sonido a un método aparte que se llama comparar longitud de sonido y este método es utilizado tanto por éste como por este para ordenar los animales y así no tenemos el mismo código repetido si en el futuro quisiéramos modificar la manera en la que se ordenan los animales tan solo tendríamos que modificar este método y número 3 reemplaza los switch cuando estás usando un lenguaje con orientación a objetos como puede ser python java script utilizar estructuras suites o irse encadenados que viene a ser lo mismo es síntoma de que no estás aprovechando el polimorfismo aquí tenemos un ejemplo en este método get sonido se hace un switch con la variable nombre y en función de si es vaca perro o gato tiene un comportamiento distinto devuelve muy guay o miami como podemos arreglar esto pues en type script vamos a hacer uso del polimorfismo transformando esta clase animal en una interfaz que simplemente especifica que un animal debe tener un atributo en nombre que será una cadena y un método que el sonido que será también una cadena de este modo para implementar cada uno de estos comportamientos que tiene aquí juntos el código malo lo que hacemos es crear unas nuevas clases clase vaca clase perro y clase gato que implementen esta interfaz aquí tenemos la clase delator la clase perro y la clase vaca como veis cada una de estas clases es sencillísima tiene muy poco código y es evidente lo que hacen y así nos hemos ahorrado utilizar estructuras suites porque si en el futuro quisiéramos añadir más animales tendríamos que tocar todas las funciones que tengan este tipo de switch aquí abajo en la descripción he dejado un enlace al código que he utilizado durante el vídeo pero si tenéis cualquier duda no dudéis en dejar un comentario me gustaría también mandar un saludo a toda la comunidad de web pizarro y darles las gracias por la gran labor que están haciendo divulgando el conocimiento sobre el desarrollo web si te ha gustado este vídeo recuerda darle a me gusta y compartirlo en redes sociales y si quieres aprender más cosas nuevas suscríbete ahora al canal [Música]