Recursos de Sergio PereaComo desarrollar un Chatbot con Javascript (parte 1) | Sergio Perea

Recomendación: el libro "Refactoring"

Refactoring: Improving the Design of Existing Code

Descripción del libro

EditorialAddison-Wesley Professional
AutoresMartin Fowler
Páginas418
ISBN978-0134757599
Puntuación4,8 / 5
ComprarComprar

El refactoring es una técnica con la que Martin Fowler nos propone aplicar pequeñas modificaciones (el libro enumera alrededor de 70 diferentes) en nuestro código de forma incremental de cara a aumentar su calidad. Dichas modificaciones se realizarán bajo la premisa de que no modificarán en absoluto su comportamiento y que serán lo suficientemente simples como para poder aplicarse siguiendo los pasos y la mecánica que nos describe el autor. En resumen:

un refactoring es un cambio en la estructura del código que no cambia su funcionalidad.

Pero ¿para qué?

El efecto acumulativo de aplicar todas estas transformaciones es significativo. Incide en el diseño, en el control de errores, en el control de los cuellos de botella(performance) y en la búsqueda de un código lo más limpio posible.

Quizás una de las partes más importantes del libro es la de los "Code Smells", descritos por Kent Beck (colaborador de esta obra), y en los que se basan todos los "refactorings". Los "Code Smells" consisten en una lista de antipatrones localizables en segmentos de nuestro código. Estos segmentos de código son precisamente aquellos sobre los que hay que aplicar este proceso de refactoring. Hoy en día ya hay herramientas como Sonarcube que los detectan, pero hace 20 años no era así. En cualquier caso, es importante saber identificarlos y entender por qué constituyen antipatrones que deberíamos evitar.

El primer contacto que tuve con este libro fue en el año 2000 (era un simple becario). Ya entonces influyó bastante en mi forma de programar. Pero recientemente he adquirido (no lo tenía físciamente) una nueva edición que el autor ha reescrito con un cambio muy relevante: los ejemplos tratados en la primera edición estaban escritos en Java, pero los de la nueva edición están escritos en Javascript. En mi opinión ha sido decisión muy acertada porque aumenta enormemente la legibilidad del código de los ejemplos y de paso el libro ocupa la mitad de espacio que antes. Aunque no todo el mundo opina igual. A mi me parece que, a fin de cuentas, se trata de entender conceptos agnósticos del lenguaje que utilices. A parte, parece que el autor ha revisado algunos refactors. Pero no muchos, así que mi recomendación es que compres la edición cuyo lenguaje utilizado esté en tus preferencias.

Creo que, si eres programador, este libro tiene que estar en tu biblioteca. Es un texto que ha influído necesariamente en la programación de los últimos 20 años. Lo que, por cierto, provoca que algunos refactorings nos puedan parecer bastante obvios. Podrás hacer una lectura inicial del libro y si el tema te gusta lo vas a devorar en poco tiempo. Pero después, que es cuando hay que asimilar lo aprendido, es una gran libro de consulta al que volver una y otra vez hasta que con la práctica seas capaz de dominar completamente todos los casos planteados.

A modo de anécdota, te pondré dos frases del libro que hoy ya se han hecho famosas (una de Fowler y otra de Beck). Dos frases que posiblemente condensan lo que el libro nos quiere decir:

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

I’m not a great programmer; I’m just a good programmer with great habits

x
Esta web hace uso de cookies únicamente con el objetivo de mejorar la experiencia de usuario y usabilidad de la web. Este aviso es un requisito legal que me obliga molestarte con detalles que te dan igual. Quiero saber más Acepto