Patrones funcionales

¡Bienvenidos pythonistas!

En nuestra última sesión de video sobre patrones de diseño, nos enfocamos exclusivamente en patrones para el object oriented paradigm (OOP) (OOP). Hasta cierto punto, este fue un punto de partida significativo porque el famoso libro gang of four trataba solo de este paradigma.

 

Posteriormente, durante una charla de podcast sobre patrones con Hibai Unzueta y José Huerta, Hibai explicó su perspectiva sobre la programación desde un paradigma más funcional.


Para aquellos de vosotros que no conozcan este paradigma, les recomiendo la sección CÓMO HACERLO sobre el tema de la Biblioteca Estándar.
En lineas generales, el paradigma de programación funcional se centra en la concatenación de funciones puras para lograr un resultado deseado al promover la inmutabilidad en los datos y la ausencia de efectos secundarios durante el proceso. Entonces, no hay objetos, no hay clases, solo funciones. El tema en sí es más profundo que esto, por lo que puedes aprender más sobre él.

¿Significa esto que solo con este cambio de paradigma no existen problemas similares que puedan resolverse de manera regular, es decir, que no hay necesidad de patrones de diseño? Depende de tu visión, pero yo diría que, por supuesto, todavía hay espacio para los patrones. Todavía hay problemas que ocurren en varios contextos y podrían resolverse aplicando la misma "solución" o patrón.
No soy un programador funcional puro. Estoy más cerca de la programación orientada a objetos en mi vida diaria, pero hay situaciones en las que un enfoque funcional podría ayudar a describir el código y simplificar la tarea para todo el equipo. Menciono esto porque no importa si eres puramente funcional o pura OO o puramente procedimental, los patrones que vamos a repasar aquí te pueden ser de utilidad en todos los paradigmas, pero en funcional probablemente serán un must.
Aquí vamos a revisar los siguientes patrones funcionales de dosificación:

  • Memoization
  • Lazy sequence
  • Partially applied function

Continua leyendo en inglés

Conclusiones

No hay literatura extensa y profunda sobre patrones dentro del paradigma de programación funcional. A pesar de esto, los programadores encontraron errores / problemas que podrían resolverse de la misma manera en una variedad de situaciones. Entonces encuentran patrones de errores y desarrollan estrategias para resolverlos, por lo que desarrollan patrones de diseño.

Hemos probado este punto con los tres patrones anteriores. Los ejemplos y el código son solo para comprender la idea. Os invito a ir más allá y ver cómo estos patrones podrían integrarse en vuestras prácticas diarias.

En el próximo artículo cubriremos más temas relacionados con los patrones y la arquitectura ... hasta entonces, ¡recuerda ser valiente y audaz!

Si te ha gustado este artículo quizá puede interesarte el anterior.

Mocking in Python