Clean Code Cookbook
Índice de la wiki de Clean Code Cookbook: recetas de refactoring para resolver code smells, basada en el libro de Maximiliano Contieri
Esta wiki toma como guía Clean Code Cookbook de Maximiliano Contieri (O’Reilly, en early release). A diferencia del libro clásico de Robert C. Martin, este es un cookbook: cada capítulo ofrece recetas específicas para resolver code smells. Las notas destilan los patrones en español, con ejemplos y discusión de cuándo aplicar cada uno.
Acerca del libro
Maximiliano Contieri es ingeniero de software, escritor y conferenciante. Lleva años publicando sobre clean code y refactoring en su blog. Este cookbook es la versión sistemática de sus recetas: tomadas de su blog, depuradas, ordenadas y ampliadas.
La estructura es deliberadamente práctica:
- Code smells: cada capítulo se organiza alrededor de un code smell.
- Recetas: cada sección es un “problema → solución → discusión”.
- Modernos: incluye reflexiones sobre AI-generated code, polyglot programming, machine learning.
El libro es claro: las recetas son herramientas, no mandamientos. Aplicarlas sin entender es peor que no aplicarlas.
Quién debería leer esta wiki
- Programadores que quieren mejorar la calidad de su código.
- Tech leads que necesitan un vocabulario compartido para code reviews.
- Refactorers que buscan patrones sistemáticos.
- Cualquier persona que se haya preguntado “¿esto se podría hacer mejor?”.
Cómo leer esta wiki
Las notas siguen el orden del libro. Cada capítulo cubre un code smell, y cada receta es una sub-sección del capítulo.
- Capítulos 1 y 2 → una sola nota (conceptual, introductoria).
- Capítulos 3 y 4 → dos notas por capítulo (split por bloque temático).
Cada nota arranca con un [!abstract], sigue con H2/H3, usa callouts con propósito (tip, warning, danger, question, example, note, info), incluye bloques de código con ejemplos en Python (con notas sobre cómo aplicar el patrón en otros lenguajes), y cierra con ## Próximos pasos enlazando a la siguiente.
Bloques temáticos
Conceptos básicos
- Code smells y refactoring: el setup. Qué es un code smell, qué es refactoring, qué es una receta, naming, design patterns, paradigmas.
- Axiomas del software: el principio único de diseño. Lo que Contieri considera la base de toda la disciplina.
Recetas por code smell
- Anemic Models - parte 1: las primeras recetas sobre objetos anémicos. Conversión, esencia, setters, generadores de código.
- Anemic Models - parte 2: completando la transformación. DTOs, constructores vacíos, getters, doble encapsulación, object orgy.
- Primitive Obsession - parte 1: reificar primitives. Crear objetos pequeños, reificar datos primitivos, arrays asociativos, eliminar abusos de strings.
- Primitive Obsession - parte 2: reificar timestamps, subconjuntos, validaciones, eliminar propiedades innecesarias.
Cierre
- Glosario y referencias: glosario del libro, libros de referencia y rutas de profundización.
- Epílogo y claves: cierre de la wiki. Las ideas recurrentes y cómo seguir.
Temas transversales
El libro entero orbita alrededor de cinco ideas:
Tono y estilo del libro
El libro es directo y argumentativo. Contieri no duda en afirmar “esto está mal” sin largas disquisiciones. La wiki mantiene ese tono: preferimos consejos claros a “depende”.
El autor usa Java, C#, Python, JavaScript, Ruby y otros. La wiki usa Python como lenguaje de ejemplo porque es legible, pero los patrones aplican a cualquier lenguaje orientado a objetos.
Próximos pasos
- Code smells y refactoring: el primer capítulo. Lo que aprendemos sobre qué es un code smell, qué es refactoring, y qué reglas usar para nombrar y clasificar.