he visto mucho interés en este libro que yo tengo acá que es el clean causa escrito por robert martínez este libro ustedes lo pueden encontrar en la tienda de amazon entre 30 y 50 dólares a veces encontramos para todas veces no y como algunos de ustedes pueden haber visto en otro vídeo anterior este fue un libro que a mí me proporcionó la empresa para que yo lo leyera y así pudiese aportar más valor al negocio más que nada este libro lo elegí yo no fue un libro que me impuso la empresa lo elegí libremente para
poder ver de qué es lo que este libro se trataba este libro promete según su contratapa entregarte las mejores prácticas ágiles para que podamos ir limpiando nuestro código sobre la marcha entregarte valores sobre la construcción del software ágil y te transformará en un mejor desarrollador pero siempre y cuando tú trabajes en eso este libro de clean code ha estado en la boca de muchos desarrolladores hoy en día y también existen empresas que consideran que este libro pero tienes que saber al revés y al derecho así que tú quieres participar en la empresa incluso si es
que tú llegas a postular a un trabajo con estas empresas podría ser que tú no obtengas el puesto de trabajo a menos que tú apliques a rajatabla todos los patrones que te entrega este libro yo supe de un caso de un desarrollador bastante bueno que fue rechazado en una empresa por no estar aplicando a rajatabla los conocimientos que tiene este libro y una de las cosas que yo quería hacer en este vídeo es poder responder preguntas como por ejemplo cumple este libro lo que promete y que trata su contenido como deberías leerlo y la pregunta
más importante de todas es es este libro para ti todas las respuestas a estas preguntas en este vídeo hola mundo y bienvenidos a este vídeo lo primero que quiero comentarles es que a mí nadie me pago por hacer un review de este libro por lo que ustedes verán aquí será mi más honesta opinión de lo que yo pienso respecto a este libro y en el caso que ustedes decidan en base a mi opinión si es que este libro es para ustedes puedas usar los links que yo voy a dejar acá abajo en la descripción de
este vídeo este es un link de afiliados por lo que yo voy a recibir una pequeña comisión al tú comprar este libro utilizando este link de esta manera tú vas a poder apoyar al canal para que podamos seguir generando contenido de este tipo para ustedes y yo por supuesto voy a estar muy agradecido si es que tú decides apoyar al canal de esta forma ahora comenzamos con el review clean code es un libro que pretende entregarte las mejores prácticas según la opinión del autor y ustedes lo primero que van a ver es que la gran
mayoría o sea todos los ejercicios de código que contienen este libro se encuentran escritos en java sin embargo el foco de este libro es que tú también puedes aplicar todos los conocimientos que éste tiene en distintos lenguajes no es necesario que sea solamente para llamar cuando se escribió este libro java seguía siendo un lenguaje con una orientación a objetos muy fuerte que carecía de buenas prácticas o también de buenas formas de resolver los problemas que tienen lenguajes de programación con el paradigma funcional y lo que nosotros vamos a estar viendo en la mayor parte de
este libro son buenas prácticas orientadas también a la programación orientada a objetos en el primer capítulo nosotros vamos a ver que hay varios grandes desarrolladores de toda la industria que van a hablar sobre el problema que es tener un código desordenado y también lo importante que es que tú el código que escriba sea lo más ordenado y lo más limpio posible hablas sobre los altos costes que puede tener un software que cumple con el carácter de ser desordenado y también te intenta explicar por qué es bueno que tú intentes siempre estar escribiendo un código limpio
ya que esto va a aumentar la productividad la mantenibilidad y todas esas cosas que nosotros ya sabemos continúa con un apartado donde nos explica cómo nosotros debemos darle los nombres a nuestras variables funciones y por supuesto también que las clases tengan un nombre que tenga sentido esto es una buena práctica tú quieres tener un código que sea bastante fácil de leer y bastante fácil de entender sobre todo para desarrolladores más nuevos los distintos consejos sobre cómo nosotros debemos estar escribiendo estas variables como por ejemplo que los nombres sean pronunciables y que no sean siglas o
acrónimos que no intentes acortar el nombre de éstos entre otras cosas menciona también el mental mapping que mental más bien es cuando nosotros tenemos una variable y está después la red nombramos con otro nombre como por ejemplo cuando estamos hablando de user admin guest visitors cuando finalmente todas estas debiera ser la misma variable ser el user y después nosotros verificar cuál es el permiso que éste tiene algo importante en esta sección no se habla sobre generalización como por ejemplo cuando nosotros estamos utilizando constantes con nombres bastante generales como por ejemplo x x s para referirse
a una colección de datos no indica si es que esto es algo bueno o malo y esta práctica se utiliza mucho cuando tú quieres que tu código sea reutilizable primero esta generalización que yo les comento la he utilizado yo en otros vídeos también las utiliza el fundador del canal fun fun funkshion matilla johansson y también brian lo néstor quien es el creador de la guía austria a the white guide para programación funcional en javascript en el capítulo sobre funciones habla sobre buenas prácticas en general para las funciones como que éstas tienen que tener pocos argumentos
tienen que hacer solamente una cosa y que éstas siempre se le dan de arriba hacia abajo no menciona la composición de funciones y muestra una práctica que a mí en lo personal no me gusta mucho que cuando nosotros estamos anidando funciones cada vez más y más esto es cuando tú tienes una función que llama a otras funciones y después tú tienes esta función que llaman otras funciones y tenés esta función que después llama más funciones esto según mi opinión es muy difícil de estar siguiendo ya que tengo que estar constantemente saltando de una función a
otro para después estar volviendo y seguir bajando en la definición para finalmente lograr armar este mapa conceptual de qué es lo que está tratando de hacer a nivel de detalle la función además que esto no necesariamente hace el código reutilizable solamente va a separar la complejidad en distintas capas tampoco menciona los efectos ni como éstos debieran ser manejados luego viene la sección de los comentarios y aquí estoy de acuerdo prácticamente en todo lo que él está mencionando que el código tiene que ser auto explicativo y que finalmente cuando nosotros estamos agregando comentarios vamos a tener
que mantener el código y luego también vamos a tener que mantener un comentario si existen algunas excepciones que son la verdad bastante pocas y el las mencionan y por lo general estoy bastante de acuerdo con las excepciones para nosotros comentan el código habla también sobre como nosotros tuviésemos forma tiene el código y para mí este capítulo es prácticamente perdido ya que utilizando hoy en día el ínter esto te lo forma de 'las de manera automática sin que tú ni siquiera tengas que involucrarte en informativo habla también sobre estructura de datos y cómo darles nombres pero
no vas a ver ninguna estructura de datos propiamente tal no tiene algoritmos de búsqueda no tiene linked list árboles ni nada y eso solamente como debiesen ser nombrados en ciudad también como nosotros debemos manejar los errores y cómo debemos extraer el try caché en el espíritu de su intención estoy de acuerdo que trae caché debe ser extraído pero según los ejemplos que muestran acá yo en lo personal pienso que hay mejores formas hoy en día de hacerlo ahora también sobre cómo nosotros debiéramos estar generando límites dentro de nuestro código para que nuestras clases sus funciones
hagan solamente una tarea específica y no estén haciendo muchas cosas también habla sobre prácticas de textos unitarios que yo en lo personal estoy sumamente en desacuerdo con ella comenta que los tests deben ser fácil es tener en esa parte yo estoy de acuerdo pero cuando empiezas a ver la sintaxis de como él empieza a redactar los tests te vas a dar cuenta que un test que tenía muchas muchas muchas líneas donde nosotros podríamos ver el detalle de qué es lo que se estaba tratando de probar y cómo se estaba construyendo lo que necesita nosotros queríamos
probar finalmente lo termina dejando en dos a tres líneas y esto lo que hace es que toma toda la complejidad y sencillamente la lleva a otro lado te va a dejar ver por ejemplo en el caso de los tes cuál es la intención construir una página y asegurarte que esté la data por supuesto pero tengo que ver cómo se empieza a construir la página después para yo poder empezar a ver si finalmente estoy probando lo que de verdad quiero probar entonces en esa parte yo no estoy muy de acuerdo él comenta quien los test deben
ser fáciles de leer y en lo personal en este espíritu yo estoy de acuerdo pero los ejemplos que él muestra él toma toda esta complejidad del test y sencillamente las lleva para otro lado entonces agrega una nueva capa de complejidad donde yo tengo que ver test y después tengo que ir a ver la definición para ver qué es lo que está efectivamente probando nuestro test y ver si es que lo está haciendo de manera correcta entonces al mover nosotros este tipo de complejidad en los tests a otro lado hace que yo lo que tenga que
hacer es seguir el idu entes y luego empezar a ver la definición que éste tiene y si es que éste tiene más funciones que se están llamando tengo que empezar a ir a ver el detalle de todas estas funciones entonces cuando estamos generando múltiples capas de abstracción no es algo de lo que yo sea muy fanático sí creo que hay que tener capas de abstracción pero en este caso en los tests creo que es mejor ver el detalle para saber qué es lo que estamos probando menciona también que las clases tienen que ser pequeñas aunque
no mencionan nada de la composición de objetos ni tampoco de factory factions que puedan tomar distintas definiciones y componer las no explica de manera clara cuáles son los problemas que tiene la herencia como por ejemplo el problema del gorila y la banana y el problema del gorila y la banana cuando nosotros necesitamos la instancia de una banana pero no existe ninguna clase en todo nuestro sistema que tenga exclusivamente la clase de la banana por lo que nosotros en lugar de solicitar una instancia de una banana vamos a solicitar la instancia de un gorila que éste
tiene la banana en la mano y está colgado arriba del empire state aunque las recomendaciones que en este libro edad de como tú deberías estar armando tus clases digamos que está bien pero no está mencionando la composición de objetos menciona el refinamiento constante también la mejora continua donde él empieza a mostrar unos ejemplos de código es bastante extensos y en lo personal creo que yo que tener ejemplos de código tan tan tan tan largos en este libro hace que sean difíciles de ir siguiendo además el ejemplo que utiliza al no estar utilizando funciones hace que
el re factoring de éste sea innecesariamente difícil y esto quiero aclarar no es necesariamente porque el autor no conozca sobre composición de funciones o composición de objetos lo más probable es que es si lo conozca pero al presentar solamente como opción la herencia y las clases hace que sea innecesariamente difícil cuando existen otras alternativas más simples para nosotros poder ref actualizar y hacerle una mejora continua y constante de nuestro código algo que me gustó mucho también de este libro es que empieza con implementaciones que parten completamente descabellada y empiezan muy mal pero él mediante ralph
actor y él empieza a ir mejorando constantemente el código hasta que llegan algo que es por supuesto que más presentable y más fácil de entender sin embargo está utilizando en su mayoría o exclusivamente solamente patrones orientados a objetos lo cual limita el potencial que tiene clean code ahora tiene una sección también de codes mails y antes de que nosotros sigamos quiero explicar un poco qué es lo que es un coach mail en ciencias de la computación un coach net es una característica que presenta un código fuente que posiblemente puede ser existe el potencial que te
lleve a un problema más serio ahora determinar lo que es un coach es mel es algo completamente subjetivo es más que nada cuando tú ves algo y encuentras sospechosos posiblemente podría generar un problema mayor no necesariamente es un error o un banco pero posiblemente pueden mostrar una debilidad que tiene el sistema que tú estás construyendo y digo potencial porque puede ser que está el problema cómo puede que no sea un problema y que nunca jamás genere un problema en el futuro cuando existe un coach mail es buena idea aunque no siempre deben ser sep pero
es buena idea rev actualizar el código para que éste sea más fácil de leer y también más fácil de seguir y ver si se le puede dar una estructura de arriba hacia abajo que sea que sea sencillo decir ahora volviendo el libro hay un apartado de codes mails que en lo personal yo encuentro que es sumamente bueno ya que él te muestra todos los scouts mails que él ha encontrado a lo largo de su carrera y finalmente te indica que si es que te estás tomando con este tipo de cosas deberías indagar un poco más
en el código para ver sé que efectivamente te lleva a algún problema es serio solamente hubo una cosa que me me llama un poco la atención porque él menciona código muerto y segundo código muerto no es un coach mente sencillamente el código muerto es un anti patrón y eliminar no debiese ser algo como que puede ser que sea malo puede ser que no sea malo en mi opinión es definitivamente malo clean code es un libro que ya lleva bastante tiempo fue escrito el 2008 si mal no recuerdo posee sabiduría de un gran desarrollador que es
robert martin tiene un sólido contenido orientado de objetos y si vas a desarrollar un sistema escrito en java o vas a tener que mantener algún sistema escrito en java lo más probable es que de este libro te vaya a servir entre el 50 y el 80 por ciento sobre todo si te encuentras recién empezando en el mundo del desarrollo ahora hay cosas que no son tan relevantes hoy en día ya que se empezaron a desarrollar nuevas funcionalidades en los lenguajes de programación que hace que las recomendaciones que tenga este libro queden un poco obsoleta ya
que hay soluciones que son más elegantes más cortas y más legibles pero por supuesto mencionar de que este libro fue muy relevante en su tiempo y ojalá que el señor robert martin lo hubieses que éste incluso antes para poder empezar a implementar estos patrones antes ahora también mencionar de que ya va que ese lenguaje que está utilizando saca como ejemplo es un lenguaje que también ha evolución mucho y hoy en día incluye también el paradigma de programación funcional ahora sí que tú te encuentras desarrollando en otro lenguaje ya sea como rudy javascript on o incluso
rastro este libro la verdad es que te va a ayudar quizás todavía menos ya que al ser estos lenguajes multi paradigmas cuando nosotros nos estamos enfocando solamente en la parte de orientación objetos nosotros nos vamos a estar limitando mucho en cómo nosotros podemos solucionar el problema las clases no son la única solución que existe en el mundo la programación por lo que tú puedes optar por otro tipo de soluciones que van a ser más elegantes más bonitas más eficientes y más todo y seguir este libro a rajatabla lo único que va a hacer es limitarte
a ti como desarrollador si es que estás en lenguajes multi paradigma sobre todo en los lenguajes que te mencioné antes que tienes programación orientada a objetos también tienes funcional imperativa orientada a eventos y por supuesto que muchos otros paradigmas y ahora respondiendo la pregunta del comienzo cumple este libro con lo que promete yo en lo personal creo que sí yo creo que es bueno leerlo al menos una vez para que ver lo que tiene que compartir el señor robert martin tiene vieja sabiduría que mucho de esto es todavía válido hoy en día y también te
va a ayudar a entender cómo pensaban los desarrolladores de antes sin embargo no creo que tienes que basarse únicamente en este libro y no creo que deba ser tu biblia ni seguir todo a rajatabla ya que esto no es el santo grial de la programación algunas de las prácticas que tiene este libro en mi opinión son obsoletas y existen otros patrones y también otros paradigmas que te pueden ayudar a escribir incluso un código más limpio por lo que yo creo que es bueno que si vas a elegir este libro deberías también complementarlo con algún otro
libro que tenga otro tipo de paradigma también y finalmente así escribir un código más limpio y ese formato de esta semana chicos espero que les haya gustado que no se olvide darle like a este vídeo si es que te gustó y si es que te encantó considera suscribirte con el botón que se encuentra acá abajo activa la campanita también para que no te pierdas ninguno de mis vídeos déjame también en los comentarios que otro tipo de vídeos le gustaría que hiciera acá abajo y si deseas profundizar en alguna otra materia por supuesto que acá abajo
también vas a tener links con acceso a todos mis cursos y también un link de afiliados para que puedas comprar este libro si es que tú piensas que es para ti hasta la próxima y chau mundo [Música]