2013-06-05 20 views
5

Sono uno sviluppatore web MVC che è diventato molto interessato nella programmazione funzionale di scrivere applicazioni web (in particolare, sono affascinato da Erlang e Cowboy.)Cosa sostituisce il pattern MVC nella programmazione funzionale?

Quello che sto avendo problemi a trovare una risposta alla/risorse su è il pattern utilizzato per sostituire MVC in FP.

Ovviamente l'idea di un ORM è ridicola in FP, poiché non è orientata agli oggetti, quindi cosa viene utilizzato per sostituirlo per la logica di persistenza? È normale creare semplicemente un modulo che utilizza una libreria per creare funzioni che si interfacciano con il datastore o ci sono strumenti simili agli ORM?

Sia i consigli che i collegamenti alle risorse sarebbero molto apprezzati. Punti bonus per l'aiuto specifico di Erlang/Cowboy. Grazie.

+0

[Questa domanda] (http://stackoverflow.com/questions/327955/does-functional-programming-replace-gof-design-patterns) mi dà un po 'di aiuto per capire perché questa risposta sembra mancare, ma sono comunque interessato ai consigli di persone esperte con FP, specifiche per il lavoro di tipo ORM. – iliveinapark

+0

Dai un'occhiata a [Decrittando il pattern Observer con 'Scala.React'] (http://infoscience.epfl.ch/record/176887). – lukstafi

risposta

4

Esistono quadri MVC per Erlang. Ad esempio, è Chicago Boss.

+0

Grazie amico. Ho dato un'occhiata a ChicagoBoss, e penso che preferirei andare con qualcosa di più piccolo come Cowboy o WebMachine. Mi rendo conto che ciò significa che l'equivalente ORM non è integrato, ma sto cercando di capire come gli FPer lo fanno in generale, senza un ORM. – iliveinapark

+0

Si potrebbe dare un'occhiata a http://nitrogenproject.com/ - non è proprio MVC (è basato sugli eventi usando la corrispondenza del modello di Erlang). Ho trovato che fosse leggero con un ciclo di sviluppo veloce. A proposito, non c'è bisogno di strumenti simili a ORM in Erlang poiché database come Mnesia consentono di salvare i termini nel database e di leggere come termini, cioè non c'è bisogno di un ** _ mapping _ ** o di un livello di traduzione in quanto non c'è nulla tradurre. –

0

im un codificatore per Erlang. io uso Erlang per il mio server di gioco web ... quindi ... non c'è Vista..e in funzione luangues questo non è il Modello ... quindi dal mio punto di vista, funzione luangues non c'è bisogno di MVC (proprio come nessuna classe o di sottoclassi in funzione luangues ..)

3

Citando da un article da @yarivs:

Erlang fa portare il suo peso in tutte le lettere del MVC. Per il modello, dimentica i livelli di astrazione del database: hai un database distribuito Erlang puro chiamato Mnesia. Per la vista, Yaws ha ehtml. Per il controller, Yaws ha appmods e il pattern matching di Erlang.

Spero che questo aiuti.

Problemi correlati