</> CodeBooks
    ← Volver a Arquitectura de software (página 1)
    Portada de Refactoring Improving the Design of Existing Code, 2nd Edition

    Refactoring Improving the Design of Existing Code, 2nd Edition

    Martin Fowler

    Editorial
    Addison Wesley
    Año
    2018
    Páginas
    ~448
    Nivel
    Intermedio

    De qué trata

    Segunda edición completamente renovada y reescrita (publicada en 2018 por Addison-Wesley) de una de las obras más influyentes en la historia de la ingeniería de software, escrita por Martin Fowler con contribuciones de Kent Beck. A diferencia de la primera edición clásica de 1999 que utilizaba Java, esta entrega adopta JavaScript moderno (ES6/ES2015+) como lenguaje vehicular para ilustrar cada técnica. El libro está orientado a desarrolladores de software, líderes técnicos y arquitectos de nivel intermedio que ya dominan la programación funcional u orientada a objetos pero necesitan métodos rigurosos y sistemáticos para reestructurar código legado o degradado sin alterar su comportamiento externo observable.

    La obra profundiza en los principios económicos y prácticos del refactor continuo integrado en pipelines de integración continua (CI/CD), acompañados de un inventario detallado de más de veinte "olores en el código" (code smells como Long Function, Large Class, Primitive Obsession, Data Clumps, Feature Envy y Shotgun Surgery). A continuación, despliega un exhaustivo catálogo de refactorizaciones categorizadas paso a paso con sus motivaciones y mecánicas exactas: operaciones básicas (Extract Function, Inline Function, Extract Variable, Introduce Parameter Object, Combine Functions into Class, Combine Functions into Transform, Split Phase), encapsulación de registros y colecciones, movimiento de responsabilidades entre módulos, simplificación de condicionales (Replace Conditional with Polymorphism, Decompose Conditional) y rediseño de interfaces y jerarquías, todo respaldado por suites de pruebas automatizadas con frameworks como Mocha o Jest.

    La práctica se articula en su primer capítulo a través de un proyecto guiado completo: un sistema de facturación y liquidación de créditos por volumen para una compañía teatral que representa comedias y tragedias. Fowler toma un bloque inicial de código desestructurado y lo somete a transformaciones quirúrgicas sucesivas mediante pruebas unitarias y polimorfismo hasta obtener una arquitectura modular capaz de emitir reportes en texto plano y HTML. Su valor indispensable radica en convertir el mantenimiento del código en una disciplina de ingeniería predecible y de bajo riesgo; no aborda arquitectura distribuida ni aprovisionamiento de infraestructura cloud, centrándose exclusivamente en el diseño a nivel de código fuente. Conviene tener fluidez con JavaScript moderno y nociones de testing automatizado.

    • Refactorización
    • Clean Code
    • Code smells
    • JavaScript ES6+
    • Pruebas unitarias
    • Diseño orientado a objetos
    • Polimorfismo
    • TDD
    • Mantenibilidad
    • Integración continua

    ¿Cómo enseña?

    TeóricoPráctico

    Teoría + práctica

    • ✗ Sin ejercicios
    • ✓ Incluye proyectos

    Proyectos

    Generador de facturas para compañía teatral

    Programa en JavaScript y Node.js para facturación y liquidación de créditos por funciones teatrales cómicas y dramáticas, refactorizado paso a paso desde una función monolítica hasta una arquitectura modular con polimorfismo y soporte para reportes en texto y HTML.

    Más de Arquitectura de software con nivel Intermedio