Comincio a pensare funzionalmente [chiuso]

7

Recentemente ho imparato a conoscere la programmazione funzionale. Sono stato codificato in Scala quasi tutto l'anno scorso e sto solo ora iniziando a cogliere appieno la potenza di un linguaggio funzionale.

Voglio costruire da zero un sito Web basato sui dati utilizzando tecniche funzionali. Sto avendo difficoltà a capire come iniziare a pensare a questo. L'ho fatto molte volte utilizzando le tecniche standard OO di Java. Di solito penso al prodotto finale, costruisco il mio modello oggetto, quindi costruisco il mio livello DB CRUD, quindi il mio livello di servizi (business logic), quindi il mio livello web / ui.

La mia domanda è: come posso ragionare / progettare una grande applicazione web basata sui dati in modo funzionale?

EDIT: buoni punti fatti finora. Che ne dici di questo:

In un'applicazione web basata sui dati (database, MVC, moduli HTML, ecc.) dove ha senso utilizzare FP?

Sto ancora lavorando per ottenere una buona comprensione di esattamente cosa FP è, quindi per favore portami con me nelle mie domande.

    
posta three-cups 29.03.2011 - 23:12
fonte

3 risposte

14

Quando tutto ciò che hai è un martello ...

Guarda la semplice risposta è la più sincera , tu non devi renderla ALL funzionale. Ha il suo scopo, usalo nel giusto posto !

    
risposta data 29.03.2011 - 23:55
fonte
8

My question is: how can I reason about/design a large, data-driven web application in a functional manner?

Um ... È difficile rispondere, ma lo progettate funzionalmente. Come una funzione

sito web (richiesta) - > risposta

Un sito web è solo una funzione che mappa le richieste di risposta. Di solito usa HTTP, quindi è veramente

sito web (HTTPRequest) - > HTTPResponse

E una risposta HTTP è Intestazioni e Contenuto che segue le intestazioni.

Il sito web come una funzione è in realtà una pipeline composta da diverse funzioni:

modello (contenuto (autenticazione (richiesta))) - > HTTPResponse

E puoi interrompere il riempimento dei modelli, la creazione di contenuti e l'autenticazione in funzioni.

Hai anche una funzione master, url_dispatch (request), che sceglie tra una varietà di composizioni di content / template basate sull'analisi dell'URI.

    
risposta data 30.03.2011 - 00:38
fonte
0

Perché hai bisogno di costruire il tutto in esso?

Ci sono luoghi in cui la programmazione funzionale entra nel suo. Questo è principalmente il caso in cui si ha un problema di dominio, spesso dove una decisione deve essere presa in una forma o nell'altra.

La maggior parte delle chiamate al sito Web sono solo per servire cose nel DB.

Prendendo un esempio .Net (mi dispiace ...), puoi usare gli assembly F # che sono referenziati dagli assembly C #. Il C # fa tutti i dati che servono e F # può fare il "pensiero" in cui i dati devono essere elaborati. La mia ipotesi è che ci sia qualcosa che possa aggrapparsi tra le tue lingue.

    
risposta data 30.03.2011 - 00:12
fonte

Leggi altre domande sui tag