¿Existen flujos de trabajo específicos o patrones de diseño que se usan comúnmente para crear grandes aplicaciones de programación funcional? [cerrado]

13

He estado explorando Clojure por un tiempo, aunque no lo he usado en ningún proyecto no trivial. Básicamente, acabo de sentirme cómodo con la sintaxis y algunos de los modismos. Procedente de un fondo de POO, con Clojure como el primer lenguaje funcional en el que he investigado mucho, naturalmente no me siento tan cómodo con la forma funcional de hacer las cosas.

Dicho esto, ¿existen flujos de trabajo o patrones de diseño específicos que sean comunes con la creación de grandes aplicaciones funcionales? Realmente me gustaría comenzar a usar la programación funcional "de verdad", pero me temo que con mi actual falta de experiencia, resultaría en un fracaso épico.

El "Grupo de los Cuatro" es un estándar para los programadores OO, pero ¿hay algo similar que esté más dirigido al paradigma funcional? La mayoría de los recursos que he encontrado tienen excelentes nuggets de programación, pero no dan un paso atrás para dar un aspecto más amplio y arquitectónico.

    
pregunta Andrew 02.10.2012 - 21:31

2 respuestas

3

Los patrones de este tipo por lo general son síntomas de un modelo subyacente roto y no apto.

La POO se rompe por diseño, no es apta para la mayoría de sus aplicaciones, por lo tanto, estalla con todos los llamados "patrones". El modelo funcional es (solo un poco) más flexible, y la necesidad de "patrones" no es tan obvia allí.

Una vez que comience a aplicar un enfoque orientado al lenguaje (natural para los programadores funcionales), utilizando o creando DSL para cada dominio de problema específico, encontrará que no se muestran patrones en absoluto, porque siempre está empleando un modelo adecuado para describir un problema.

Por supuesto, algunos "patrones" o "recetas" recurrentes de alto nivel son inevitables incluso en las matemáticas muy abstractas, limpias y puras, pero son de un tipo diferente y de un nivel de abstracción diferente al de los patrones de GoF. Encontrarás las mónadas útiles, por ejemplo.

    
respondido por el SK-logic 12.10.2012 - 08:53
-3

En mi opinión personal, los patrones de diseño son semánticos. Recuerdo haber reescrito algunas de mis aplicaciones antiguas utilizando MVC solo para asegurarme de que entendía el patrón tan bien como pensaba. Pero, al final, no obtuve nada de MVC sobre mi código original.

Sin embargo, si aplicara mi código original a un entorno de desarrollo más grande y le dijera a alguien que hay un problema con este método determinado ... sería difícil para el desarrollador rastrear el problema. SIN EMBARGO, si dijera que el Contralor de Controles fue anulado por alguna razón, sabría exactamente dónde comenzar.

Los patrones de diseño son geniales ... pero como dije, ¡creo que son semánticos!

EDITAR: Los tipos de evangelistas me hacen una risa. ¡Cómo se desarrolló algo sin MVC (o algún otro patrón de diseño)!

    
respondido por el aserwin 11.10.2012 - 22:34

Lea otras preguntas en las etiquetas