Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JConf Peru 2024 - Programación funcional en Spring

JConf Peru 2024 - Programación funcional en Spring

Andres Felipe Arredondo Hernandez
Functional programming

En el desarrollo de aplicaciones modernas, buscamos constantemente formas de escribir código más claro, modular y fácil de mantener. Spring Framework, conocido por su enfoque basado en anotaciones, ha evolucionado para incluir herramientas que permiten un estilo más declarativo y funcional.

Carlos Zela Bueno

December 11, 2024
Tweet

More Decks by Carlos Zela Bueno

Other Decks in Programming

Transcript

  1. ¿Qué es la programación funcional?  En lugar de usar

    procedimientos con secuencias de comandos que modifican el estado de las variables, en la programación funcional se crean funciones puras que devuelven siempre el mismo resultado para los mismos argumentos sin efectos secundarios.  Conceptos clave: • Funciones puras • Inmutabilidad • Funciones de orden superior • Expresiones en lugar de instrucciones • Recursion en lugar de bucles
  2. Imperativo Orientado a objetos Funcional  La programación imperativa se

    basa en el uso de instrucciones para cambiar el estado de un programa.  La programación orientada a objetos se centra en la creación de "objetos" que representan entidades del mundo real y tienen propiedades (atributos) y comportamientos (métodos).  La programación funcional se centra en el uso de funciones puras y en evitar el estado mutable.
  3. Que es Spring? Es un marco de trabajo (framework) para

    aplicaciones Java que facilita el desarrollo, configuracion y gestion de aplicaciones empresariales.
  4. Spring WebFlux vs Spring MVC Ambos son modulos del ecosistema

    Spring Framework Spring MVC: modulo tradicional para construir aplicaciones web basadas en el modelo imperativo y el paradigma bloqueante Spring WebFlux: Introducido en Spring 5, es un modulo para aplicaciones web reactivas y asincronicas
  5. Bean tradicional vs Bean Funcional Bean tradicional: Ideal para aplicaciones

    estándar con configuraciones bien estructuradas, donde la simplicidad y la detección automática son importantes. Bean funcional: Útil en aplicaciones donde se busca un control explícito, configuración mínima, o mayor flexibilidad, como microservicios o APIs altamente dinámicas.
  6. ¿Cuándo usar programación funcional? Procesamiento de grandes conjuntos de datos

    Eficiencia y rendimiento Codigo más legible y mantenible Reduccion de código Boilerplate Facilitacion del paralelismo y la concurrencia Mejor manejo de procesos concurrentes
  7. ¿Cuándo NO usar programación funcional? Alta complejidad de estados Tareas

    simples Alta necesidad de depuración Aplicaciones que no requieren escalabilidad
  8. Recursos  Java 8 in action https://github.com/Nitin96Bisht/Java- Books/blob/master/Java%208%20in%20Action.pdf  Spring

    WEBFlux https://docs.spring.io/spring-framework/reference/web/webflux.html  Documentación oficial de Oracle • https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html • https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html • https://docs.oracle.com/javase/8/docs/api/java/util/function/package- summary.html • https://docs.oracle.com/javase/tutorial/collections/streams/index.html