</> CodeBooks
    ← Volver a UX y UI (página 2)
    Portada de Principles of Package Design

    Principles of Package Design

    Matthias Noback

    Editorial
    Apress
    Año
    2018
    Páginas
    ~275
    Nivel
    Básico

    De qué trata

    Segunda edición, publicada por Apress, del libro que Matthias Noback lanzó primero por su cuenta como «Principles of PHP Package Design». Explica cómo preparar el código para reutilizarlo, compartirlo y distribuirlo como paquetes independientes. Aunque los ejemplos y el contexto vienen sobre todo del ecosistema PHP, los principios sirven para cualquier lenguaje orientado a objetos. Está pensado para desarrolladores de distintos niveles. Para aprovecharlo hay que dominar la programación orientada a objetos (clases, interfaces, herencia) y haber trabajado con dependencias de terceros.

    El libro tiene dos partes. La primera repasa los cinco principios SOLID de diseño de clases, uno por capítulo: responsabilidad única, abierto/cerrado, sustitución de Liskov, segregación de interfaces e inversión de dependencias. La segunda trata el diseño de paquetes. Primero vienen los tres principios de cohesión, que deciden qué clases van juntas y cuándo conviene dividir un paquete: equivalencia entre publicación y reutilización, reutilización común y cierre común. Después llegan los tres principios de acoplamiento, que orientan la elección y la dirección de las dependencias entre paquetes: dependencias acíclicas, dependencias estables y abstracciones estables. Incluye métricas de inestabilidad y de abstracción. También toca aspectos prácticos de publicar un paquete, como el control de versiones, la definición del paquete con Composer, los archivos de metadatos y la carga automática de clases.

    No es un libro de proyectos: cada principio se presenta con ejemplos de código que muestran el problema y su refactorización. Su gran aporte es llevar a los paquetes las ideas de Robert C. Martin sobre componentes y explicarlas de forma clara y aplicada. Es muy útil para quien mantiene librerías o una base de código modular. Aunque el catálogo lo marca como nivel básico, rinde más con algo de experiencia en diseño orientado a objetos. No cubre herramientas concretas de integración continua ni la gestión de repositorios de paquetes más allá de lo esencial.

    • SOLID
    • Responsabilidad única
    • Inversión de dependencias
    • Diseño de paquetes
    • Cohesión
    • Acoplamiento
    • Dependencias acíclicas
    • Dependencias estables
    • Abstracciones estables
    • PHP
    • Composer
    • Reutilización de código

    ¿Cómo enseña?

    TeóricoPráctico

    Teoría + práctica

    • ✗ Sin ejercicios
    • ✗ Sin proyectos

    Más de UX y UI con nivel Básico