¿Cómo escribir código manejable con programación funcional?

14

Acabo de comenzar con la programación funcional (con JavaScript y Node.js) y parece que el código que estoy escribiendo se convertirá en un infierno de código base para administrar, en comparación con los lenguajes de programación. que tienen una especie de paradigma orientado a objetos.

Con POO Estoy familiarizado con las prácticas que garantizarían que su código sea fácil de administrar y extensible. Pero no estoy seguro de una convención similar con programación funcional.

    
pregunta dade 26.11.2011 - 15:55

3 respuestas

8

En la práctica, una gran base de código funcional todavía tendrá que ser dividida en algún tipo de sistema estructural. Si te sientes cómodo con la POO, las clases siguen siendo el elemento estructurante natural. Luchas por "objetos funcionales": las funciones relacionadas conceptualmente se ubican juntas en una clase. Por supuesto, evita el estado no conversacional y la dependencia de las variables de instancia.

Al ir más allá de la estructura, existen ciertas técnicas, como la aplicación de función parcial, que se prefieren en el mundo funcional para la extensión, el mantenimiento y la generalización. Sin embargo, aprender a reconocer estas oportunidades puede ser difícil cuando se trabaja en un modo híbrido funcional / objeto. Personalmente, creo que es una buena idea trabajar en un modo híbrido, pero estudiar y jugar en un entorno más puro, como ese proporcionado por Haskell.

    
respondido por el Larry OBrien 26.11.2011 - 18:58
2

Los lenguajes de programación funcionales disfrutan de muchos conceptos poderosos para construir código de alta calidad, por ejemplo: Funciones aplicadas parciales, composiciones de funciones (esta es realmente poderosa y mi favorita), macros, funciones de orden superior. Y no olvidar estructuras de datos inmutables.

    
respondido por el Chiron 26.11.2011 - 20:39
1

En lugar de abandonar la POO para PF, intente aumentarlo con algunos patrones de PF. Cada vez que necesite procesar una colección es un buen candidato y apunta a un conjunto común de métodos de PF como mapear, plegar y reducir. Eche un vistazo a underscore.js y backbone, un marco MVC que hace un uso extensivo del anterior.

    
respondido por el sunwukung 28.12.2011 - 18:30

Lea otras preguntas en las etiquetas