Club de lectura: "Refactoring: Ruby Edition"
NOTA: ★★★★☆
Introducción al club de lectura
Hace ya un tiempo que tomé la costumbre de anotar todos los libros que leo, con la fecha en la cual lo terminé, poniéndole una nota y un comentario. Esto me permite acordarme después de varios años cuáles fueron los libros que leí y cuál fue mi opinión sobre ellos.
Ahora que empecé con mi blog, creo que es mejor que comparta mi experiencia por este medio.
Así que arrancamos con este primer libro que acabo de terminar, Refactoring: Ruby Edition, de Jay Fields, Shane Harvie, Martin Fowler y Kent Beck.
El original: “Refactoring: Improving the Design of Existing Code”
No sé si escuchaste del libro Refactoring: Improving the Design of Existing Code, de Martin Fowler y Kent Beck. Este libro es uno de los clásicos de la ingeniería de software.
Fue publicado en 1999 y revolucionó la industria. Es el libro que popularizó la noción de refactorización del código. Ya lo leí hace unos años atrás.
Martin Fowler define la refactorización de la siguiente manera (traducción mía):
Refactorización: Un cambio hecho en la estructura interna del software para hacerlo más fácil de entender y más barato de modificar, sin cambiar su comportamiento observable.
Refactorizar: reestructurar un software aplicándole una serie de refactorizaciones, sin cambiar su comportamiento observable.
Por ejemplo, cambiar el nombre de un método para que sea más claro, es una refactorización. Martin Fowler presenta en su primer libro lo que es la noción de refactorización, por qué es tan importante y también ofrece al lector un catálogo de refactorizaciones.
Aunque este libro sea muy muy muy bueno y recomendable, todos los ejemplos están escritos en Java. Por la naturaleza de Java (lenguaje fuertemente tipado), algunas refactorizaciones no tienen sentido en un lenguaje dinámico (como Python, Javascript, PHP y Ruby). También lenguajes dinámicos pueden necesitar otros tipos de refactorizaciones.
Por esas razones, Jay Fields decidió con los otros autores que iba a adaptar el clásico, en una nueva versión adaptada a los lenguajes dinámicos y más particularmente a Ruby.
“Refactoring: Ruby Edition”
Así que este libro es un tipo de nueva edición del anterior. Martin Fowler está dentro de los autores, no porque fue involucrado en este libro, pero porque escribió el original.
No note muchas diferencias entre el libro original y la edición Ruby, por el hecho de que ya había leído el original hace un tiempo atrás y que muchas partes son idénticas.
Se podría decir que esta nueva versión no es tan perfecta como la original (por ejemplo, la edición ya que hay algunos errores en los ejemplos), pero nada que perjudique la comprensión general.
Recomendaría este libro a todos las personas que trabajan con Ruby, sin duda, porque hay mucha información interesante y refactorizaciones particulares al lenguaje.
Pero también creo que puede ayudarte bastante si trabajas con otros lenguajes dinámicos, tales como Javascript, Python y PHP.
Para concluir, un buen libro, aunque quizás un poco particular para merecer que te lo leas primero.
Si es el caso, puedes suscribirte a mi newsletter, para siempre recibir los nuevos posts en tu email.