Prólogo
Prefacio
Agradecimientos
Sobre el autor
Parte I. Conceptos funcionales básicos
Capítulo 1. Inmutabilidad
Capítulo 2. Datos persistentes
Capítulo 3. Recursión e iteración
Capítulo 4. Pereza
Capítulo 5. Programas con estado
Parte II. Análisis comparativo
Capítulo 6. Factores primos
Capítulo 7. Partida de bolos
Capítulo 8. Conductores de autobús cotillas
Capítulo 9. Programación orientada a objetos
Capítulo 10. Tipos
Parte III. Diseño funcional
Capítulo 11. Flujo de datos
Capítulo 12. SOLID
Parte IV. Pragmática funcional
Capítulo 13. Pruebas
Capítulo 14. GUI
Capítulo 15. Concurrencia
Parte V. Patrones de diseño
Capítulo 16. Revisión de los patrones de diseño
Parte VI. Caso práctico
Capítulo 17. Wa-Tor
Epílogo
Índice alfabético
En Diseño funcional, el reputado ingeniero de software Robert C. Martin («Uncle Bob») explica cómo y por qué utilizar la programación funcional para crear sistemas mejores para clientes reales. Martin compara las estructuras de la programación convencional orientada a objetos en Java con las que permiten los lenguajes funcionales, identifica los mejores roles para cada una y muestra cómo crear sistemas mejores utilizándolos correctamente en cada contexto.El enfoque de Martin es pragmático, con una teoría mínima, y se centra en la solución de problemas «desde las trincheras». A través de ejemplos accesibles, los desarrolladores profesionales descubrirán cómo el lenguaje Clojure, rico a nivel semántico y fácil de aprender, puede ayudarles a mejorar la limpieza del código, el diseño, la disciplina y los resultados. Martin examina los conocidos principios SOLID y los patrones de diseño Gang of Four desde una perspectiva funcional, y revela por qué los patrones siguen teniendo un gran valor para los programadores funcionales, y cómo usarlos para conseguir resultados superiores.* Entienda conceptos básicos funcionales: inmutabilidad, datos persistentes, recursividad, iteración, pereza y programas con estado.* Contraste los enfoques funcionales y de objetos a través de casos prácticos elaborados con cuidado.* Explore técnicas de diseño funcional para el flujo de datos.* Use principios SOLID clásicos para escribir mejor código Clojure.* Domine enfoques pragmáticos respecto a las pruebas funcionales, las GUI y la concurrencia.* Aproveche al máximo los patrones de diseño en entornos funcionales.* Cree paso a paso una aplicación de clase empresarial en Clojure.
Robert C. Martin (Uncle Bob) es programador desde 1970. Es el fundador de Uncle Bob Consulting, LLC, y cofundador, junto a su hijo Micah Martin, de The Clean Coders, LLC. Martin ha publicado docenas de artículos y varias revistas profesionales y es orador habitual en conferencias y ferias internacionales. Ha escrito y editado muchos libros, entre ellos: 'Designing Object-Oriented C++ Applications Using the Booch Method', 'Pattern Languages of Program Design 3', 'More C++ Gems', 'Extreme Programming in Practice', 'Agile Software Development: Principles, Patterns, and Practices', 'UML para programadores Java', 'Código limpio', 'El limpiador de código', 'Arquitectura limpia', 'La artesanía del código limpio' y 'Desarrollo ágil esencial'.
Líder en la industria del desarrollo de software, Martin trabajó como editor jefe de C++ Report y fue el primer presidente de la Alianza Ágil.