</> CodeBooks
    ← Volver a Arquitectura de software (página 4)
    Portada de Re-Engineering Legacy Software

    Re-Engineering Legacy Software

    Chris Birchall

    Editorial
    Manning
    Año
    2016
    Páginas
    ~380
    Nivel
    Intermedio

    De qué trata

    Guía práctica y metodológica orientada a revitalizar, refactorizar y modernizar bases de código heredadas y monolitos desactualizados sin necesidad de recurrir a reescrituras totales a ciegas. Aunque sus principios son aplicables a cualquier lenguaje orientado a objetos, el libro se apoya principalmente en el ecosistema Java (Java 7/8 en la JVM) y está dirigido a desarrolladores de nivel intermedio a avanzado, líderes de equipo y arquitectos que se enfrentan a proyectos reales con código frágil, dependencias acopladas y escasa o nula documentación.

    El contenido enseña a trazar una estrategia sistemática para diagnosticar el estado del software y sanearlo de forma incremental. Birchall aborda técnicas para escribir pruebas unitarias sobre código que no fue diseñado para testeo, la introducción de inyección de dependencias para desacoplar componentes y la partición gradual de monolitos mediante interfaces limpias. En el plano de infraestructura y operaciones, muestra cómo modernizar la cadena de construcción y despliegue sustituyendo scripts manuales por herramientas como Maven y Gradle, incorporando análisis estático con SonarQube y automatizando entornos locales y de despliegue mediante Vagrant y Ansible.

    A lo largo de la obra se examina la descomposición gradual de una aplicación monolítica de gestión de logs, demostrando cómo aislar responsabilidades paso a paso. El mayor aporte del libro es su realismo: trasciende la simple refactorización sintáctica para incluir la gestión de expectativas con la dirección técnica y la adopción de prácticas DevOps que eviten volver a generar deuda técnica. No aborda tecnologías modernas de microservicios contenerizados como Docker o Kubernetes, pero ofrece una base sólida y metódica para sanear sistemas en producción antes de plantearse migraciones mayores.

    • Refactorización
    • Código legado
    • Arquitectura de software
    • Monolitos
    • Inyección de dependencias
    • Pruebas automatizadas
    • Java
    • Maven
    • Gradle
    • Ansible
    • Vagrant
    • Deuda técnica

    ¿Cómo enseña?

    TeóricoPráctico

    Teoría + práctica

    • ✗ Sin ejercicios
    • ✓ Incluye proyectos

    Proyectos

    Monolito de gestión de logs refactorizado y modularizado

    Descomposición progresiva de una aplicación monolítica heredada de gestión de logs en módulos desacoplados, incorporando inyección de dependencias, pruebas automatizadas y entornos reproducibles con Vagrant y Ansible.

    Más de Arquitectura de software con nivel Intermedio