Come scrivere codice gestibile con programmazione funzionale?


14

Ho appena iniziato con la programmazione funzionale (con JavaScript e Node.js) e dall'aspetto delle cose sembra che il codice che sto scrivendo diventerebbe un inferno di una base di codice da gestire, rispetto ai linguaggi di programmazione che hanno un una sorta di paradigma orientato agli oggetti.

Con OOP ho familiarità con le pratiche che assicurerebbero che il tuo codice sia facilmente gestibile ed estensibile. Ma non sono certo di una convenzione simile con la programmazione funzionale.


4
JavaScript è un linguaggio orientato agli oggetti, quindi vai avanti e usa le tue abilità OOP usando Node.js
Jonas,

5
prova le funzioni. Quelli risolveranno quasi tutti i problemi.
tp1,

4
Ecco una grande risorsa per mantenere il codice sorgente del nodo pulito, ordinato e quindi gestibile: nodeguide.com/style.html
Daniel Bradley,

2
Per quanto ne so, l'unica funzione di programmazione funzionale che JavaScript ha è lambda (più precisamente, funzioni senza nome) e passaggio di funzioni. Se vuoi imparare la programmazione funzionale, dovresti probabilmente esaminare qualcosa come Haskell o F # / OCaml o Scala o Lisp.
Rei Miyasaka,

Risposte:


8

In pratica, sarà comunque necessario suddividere una base di codice funzionale di grandi dimensioni in una sorta di sistema strutturale. Se ti senti a tuo agio in OOP, le classi rimangono l'elemento di strutturazione naturale. Cerchi "oggetti funzionali": le funzioni concettualmente correlate sono riunite in una classe. Ovviamente, si evita lo stato non conversazionale e si fa affidamento su variabili di istanza.

Andando oltre la struttura, ci sono alcune tecniche, come l'applicazione di funzioni parziali, che sono preferite nel mondo funzionale per estensione, manutenibilità e generalizzazione. Imparare a riconoscere queste opportunità può essere difficile quando si lavora in una modalità ibrida funzionale / oggetto. Personalmente, penso che sia una buona idea lavorare in modalità ibrida ma studiare e giocare in un ambiente più puro, come quello fornito da Haskell.


2

I linguaggi di programmazione funzionale godono di molti concetti potenti per costruire un codice di alta qualità, ad esempio: funzioni applicate parziali, composizioni di funzioni (questa è davvero potente e la mia preferita), macro, funzioni di ordine superiore. E non dimenticare le strutture di dati immutabili.


1

Invece di abbandonare OOP per FP, prova ad aumentarlo con alcuni schemi FP. Ogni volta che è necessario elaborare una raccolta è un buon candidato e punta a un insieme comune di metodi FP come mappare, piegare e ridurre. Dai un'occhiata a underscore.js e backbone, un framework MVC che fa ampio uso del primo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.