</> CodeBooks
    ← Volver a Arquitectura de software (página 4)
    Portada de Functional Design and Architecture

    Functional Design and Architecture

    Alexander Granin

    Editorial
    Manning
    Año
    2024
    Páginas
    ~684
    Nivel
    Intermedio

    De qué trata

    Obra avanzada de Alexander Granin publicada por Manning en 2024 que traslada los principios del diseño y la arquitectura de software empresarial al paradigma de la programación funcional moderna, utilizando Haskell como lenguaje principal. Está pensada para desarrolladores de software, ingenieros de backend y arquitectos con conocimientos intermedios o sólidos en programación funcional y tipado estático (familiarizados con conceptos como mónadas, tipos algebraicos e inmutabilidad) que desean aprender a estructurar sistemas escalables de nivel productivo sin depender de los patrones tradicionales de la orientación a objetos.

    El autor formula la metodología Functional Declarative Design (FDD) y desglosa cómo resolver desafíos arquitectónicos clave en Haskell. A lo largo del texto se exploran Domain-Driven Design (DDD) modelado mediante DSLs embebidos (eDSLs), mónadas libres jerárquicas (`Free` y `MonadFree`) y patrones de inversión de control (IoC) e inyección de dependencias puramente funcionales. También aborda la gestión de estado mutable controlado, concurrencia mediante Software Transactional Memory (STM) y primitivas multihilo, subsistemas de persistencia para bases de datos relacionales y de clave-valor (SQL y key-value stores), manejo robusto de errores mediante tipos funcionales y testing avanzado que combina pruebas unitarias con property-based testing apoyado en librerías como QuickCheck.

    El aprendizaje se canaliza a través del diseño y la implementación de dos proyectos representativos: Andromeda, un simulador y sistema de control tipo SCADA para naves espaciales que ilustra el modelado declarativo de hardware y dominios complejos con eDSLs, e Hydra, un framework multihilo para aplicaciones de consola y servicios backend que enseña a estructurar subsistemas, estado y capas de I/O. La obra aporta una visión arquitectónica integral y sumamente escasa en la literatura funcional, trascendiendo los tutoriales elementales de sintaxis para abordar problemas reales de ingeniería de software. No es un texto introductorio a Haskell ni a la computación matemática, por lo que dominar la sintaxis del lenguaje y las abstracciones monádicas básicas es indispensable para aprovechar su contenido.

    • Haskell
    • Programación funcional
    • Functional Declarative Design
    • Mónadas libres
    • Domain-Driven Design
    • DSLs embebidos
    • Concurrencia
    • Inversión de control
    • Property-based testing
    • Arquitectura de software

    ¿Cómo enseña?

    TeóricoPráctico

    Teoría + práctica

    • ✗ Sin ejercicios
    • ✓ Incluye proyectos

    Proyectos

    Andromeda: Sistema de control SCADA para naves espaciales

    Simulador y sistema de control inspirado en SCADA desarrollado en Haskell, utilizado para modelar la lógica de dominio de una nave espacial mediante lenguajes específicos de dominio embebidos (eDSLs) y mónadas libres.

    Hydra: Framework concurrente para servicios backend

    Framework multihilo y concurrente en Haskell para aplicaciones de consola y servicios de servidor, centrado en la separación de capas de I/O, persistencia en bases de datos y gestión de estado con inversión de control.

    Más de Arquitectura de software con nivel Intermedio