Qual è la relazione tra un framework come RoR e un database?

3

Sono uno sviluppatore front-end ... Non ho mai fatto alcun back-end, anche se ho fatto un corso nei database una volta. (Ho una laurea in scienze informatiche, sono un programmatore competente, non ho mai fatto nessuna roba di back-end prima.)

Quindi sto cercando di capire come il framework si rapporta al database. Presumibilmente sono impostati separatamente e il framework riceve richieste dal sito Web e le invia al database, quindi riceve la risposta e la gestisce in modo appropriato per consegnare il contenuto correttamente? È fondamentalmente un intermediario complesso per tutta la logica dell'app-web? Sono lontano?

Serve una buona spiegazione di questo.

    
posta temporary_user_name 22.02.2013 - 05:10
fonte

4 risposte

2

Ci sono molte possibilità per connettere un'app web a un database (e molti altri database tra cui scegliere).

Penso che dovresti prima considerare il caso normale (ad esempio, più utilizzato nella comunità RoR):
un DB relazionale e un ORM (il object relational mapper - in RoR è ActiveRecord basato sul pattern di registrazione attivo ).

un'introduzione di livello molto alto (e superficiale):

  • il database è un'entità e un processo separati.
  • l'app definisce i modelli che descrivono entrambe le tabelle nel database relazionale (RoR creerà i necessari comandi SQL) e il modo in cui i dati nel database possono essere consultati e modificati dal web app che utilizza oggetti e proprietà.
  • nel tuo codice web-app accedi al database solo interagendo con questi modelli. per esempio. in RoR:
    1. gli utenti effettuano richieste all'app Web
    2. le richieste vengono gestite nel controller.
    3. il controllore crea o recupera i record (ad es. invocando find(<id>) sull'oggetto classe) dal DB. questi record appaiono come oggetti (o matrici di oggetti).
    4. il controller li modifica e
    5. memorizza il risultato sul DB (ad es. invocando save() sull'oggetto).
    6. la risposta, ad es. mostra il risultato all'utente.
risposta data 25.02.2013 - 18:19
fonte
1

Presumibilmente, come sviluppatore front-end, sai come il tuo controller Rails gestisce le richieste HTTP standard. Il framework Rails MVP ha anche modelli. Rails supporta i modelli ActiveRecord . Queste sono fondamentalmente classi che sono collegate ad alcuni database di sottolineatura. Nel controller, è possibile effettuare chiamate su questo modello per leggere o modificare i dati nel database.

    
risposta data 22.02.2013 - 05:42
fonte
1

Il modo in cui i framework funzionano in relazione alla richiesta dell'utente e al database non è molto diverso da qualsiasi piccolo pezzo di codice che agisce da intermediario tra i due. Qualsiasi 'logica di app web' è una situazione tra i due, che si tratti di un complesso framework MVC / MVP o di un file PHP a 5 righe. Funzionano per determinare la richiesta dell'utente, creare una connessione al database e recuperare materiale e presentarlo all'utente.

Un framework suddivide i passaggi che spesso si verificano in questo passaggio intermedio. Come suggerisce il nome MVP ha modelli che strutturano i dati recuperati dal database in modo utile, una vista in cui il risultato finale viene fornito all'utente e un presentatore che lega questi due insieme e può eseguire una logica aggiuntiva.

    
risposta data 25.02.2013 - 15:08
fonte
0

Dove un sito web che non cambia può semplicemente servire pagine statiche, un'applicazione web come Amazon ha molto da fare per presentare una pagina che rappresenta un prodotto: in parole semplici, può recuperare i dettagli del prodotto in base a un identificatore passato e costruire una pagina web che mostra quei dettagli.

Direi che un framework web si riferisce a un database nel modo seguente:

"A web framework is used to build/run a program that requests from a webserver run to build responses that can use data stored in database."

    
risposta data 25.02.2013 - 18:34
fonte

Leggi altre domande sui tag