Domanda

Attualmente sto lavorando con Groovy e Grails. Mentre Groovy è piuttosto semplice dal momento che è fondamentalmente Java, non posso dire di grok Grails. Ho letto che Groovy è per Grails come Ruby per Ruby on Rails, ma cosa significa?

È stato utile?

Soluzione

Per affrontare la tua confusione con la metafora (sebbene sia stata data una risposta in altre parole sotto la tua domanda):

Groovy sta a Grails come Ruby sta a Ruby on Rails, ma cosa significa?

Grails era un framework web costruito su / con il linguaggio di programmazione Groovy per fare la stessa cosa per Groovy che Rails (un framework web per Ruby) fa per Ruby.


Cosa significa essere " su rotaie " ;?

La risposta a questo si riduce all'essenza di questi framework web.

Questi framework web (Grails & amp; Rails) sono basati sul presupposto della "convenzione sulla configurazione", il che significa che l'uso di convenzioni comuni per sviluppare applicazioni web può portare a una maggiore produttività e applicazioni più sostenibili (questa è una generalizzazione grossolana ). E definendo una convenzione e attenendoti a ciò scoprirai che le tue applicazioni sono facili da generare e veloci da mettere in funzione.

Questo è ciò che significa per me essere "su rotaie", proprio come un treno. Quando viene sviluppata una nuova linea ferroviaria, non c'è motivo di reinventare il modo in cui il treno passerà da un posto all'altro, è stato risolto da una singola convenzione per decenni: le rotaie. Proprio come i binari su un percorso ferroviario limitano il suo percorso da due posizioni, i framework Web basati su convenzioni utilizzano convenzioni per la flessibilità degli sviluppatori di applicazioni in modo che possano concentrarsi su quale sia il problema aziendale essenziale della loro applicazione.

Un vantaggio chiave di una convenzione per un framework Web è che il framework Web può ora fare ipotesi su come determinati livelli dell'applicazione si collegano. In Rails, di solito si può presumere che se la propria tabella di database ha un nome plurale, la classe ActiveRecord mappata su quella tabella avrà il nome singolare corrispondente. Di conseguenza, i generatori di codice Rails possono utilizzare le informazioni di mappatura dei dati per generare codice di accesso ai dati come rilevatori dinamici, migrazioni, attraversamenti di associazioni caricati in modo pigro, ecc. Questo codice di accesso ai dati in un framework basato sulla configurazione è laborioso da codificare manualmente.

Altri suggerimenti

Diverse persone hanno menzionato gli aspetti tecnici di ciò che rende Rails / Grails quello che sono. Diverse persone hanno anche menzionato "convenzione sulla configurazione" come "binari" in Rotaie / Grails. Questo si sta avvicinando alla verità. Ma questa è solo una delle caratteristiche della più ampia filosofia di Rails, che è il concetto di software supponente .

Il software considerato non può essere descritto solo in termini tecnici; è una filosofia; un ethos; un atteggiamento . Mi piace o odio , che è ciò che è al centro di Rails.

Ecco un esempio di un intervista a David Heinemeier Hansson , creatore di Rails:

  

Rails è un software supponente. Evita di collocare i vecchi ideali del software in una posizione primaria. Uno di questi ideali è la flessibilità, l'idea che dovremmo cercare di soddisfare il maggior numero possibile di approcci, che non dovremmo esprimere un giudizio su una forma di sviluppo su un'altra. Bene, Rails lo fa, e credo che sia per questo che funziona.

     

Con Rails, scambi la flessibilità a livello di infrastruttura per ottenere flessibilità a livello di applicazione. Se sei felice di lavorare lungo il percorso d'oro che ho incorporato in Rails, ottieni un'immensa ricompensa in termini di produttività che ti consente di fare di più, prima e meglio a livello di applicazione.

C'è anche un'intervista successiva che esplora l'argomento .

Quindi essere "su rotaia" è una metafora per essere "supponente", motivo per cui è chiamato così com'è. Questo e il fatto che "Ruby on Rails" è alliteratve, che ti dirà qualsiasi giornalista o scrittore, è un modo sicuro di attirare l'attenzione della gente.

Penso che un framework che si sforza di essere "quotato in rotaia" fa riferimento a diverse cose:

  • a livello di modello: un ORM con pattern AR (anziché datamapper), migrazioni o alcuni schemi automatizzati e gestione a livello di modello, gestione di chiavi esterne nell'applicazione (non nello schema del database, e non utilizzo di stored procedure o pura logica DBMS)

  • TDD incoraggiato: scheletri generati automaticamente per unit test,

  • convenzioni di denominazione che collegano nomi di tabelle di database e nomi di modelli, azioni del controller e di visualizzazione e modelli HTML

  • schema di riconoscimento e generazione del percorso semplificato

  • enfasi sull'architettura REST

  • integrazione con libs ajax: RJS, prototipo e scriptaculous

Rails è un framework per lo sviluppo di applicazioni Web con un back-end di database. Penso che il nome originariamente fosse un gioco di parole. Un treno può portarti da qualche parte davvero velocemente, ma solo dove vanno le rotaie.

Essere su rotaia significa che non puoi controllare dove stai andando. Significa che puoi andare solo dove sono state poste le rotaie. Qualsiasi tentativo di andare dove le persone che hanno posato le rotaie non ti hanno anticipato ti porterà alla frustrazione.

È un'espressione automobilistica. Quando un'auto maneggia eccezionalmente bene, si dice che "curva come guidare su rotaie" (cioè ti dà un controllo eccellente).

Non so se è lì che le persone hanno preso quel nome, ma è così che l'ho interpretato.

Risposta davvero breve e semplice: convenzione sulla configurazione.

Come detto sopra, Rails e Grails forniscono convenzioni per lo sviluppo di applicazioni web: nominare i tuoi pezzi in un certo modo e metterli nei posti giusti per far funzionare l'applicazione per impostazione predefinita senza alcuna configurazione aggiuntiva. Quando vuoi discostarti dalla convenzione, puoi configurare la tua strada lì.

Ruby e Groovy sono lingue.

Ruby on Rails è un framework webapp innovativo. Vedi le risposte eccellenti sul software supponente sopra.

Per quanto riguarda la storia, un titolo funzionante per un framework webapp Groovy era Groovy on Rails . Tuttavia, la comunità RoR ha obiettato. Il team ha scelto invece Grails .

È una metafora e ho quasi detto che bisogna spiegarlo. Ad ogni modo, è una metafora estremamente valida per ciò che fa Ruby on Rails. Rende estremamente facile fare (andare a) cose comuni, io. e. test, validazione, implementazione, MVC.

Non sono d'accordo con gli altri commenti di " on rails è una filosofia sulla convenzione sulla configurazione " e così via.

Mentre le rotaie aderiscono a quelle filosofie, "Ruby on Rails" è il nome di un framework web. Niente di più, niente di meno. Non si riferisce a nessuna specifica "on-railsness" a questo proposito, è solo un marchio nello stesso modo in cui McDonald's è un marchio.

Se qualcun altro scrive un altro framework e lo chiama " Python on Rails " poi ci sarà un altro marchio. In caso contrario, "XYZ su binari" significa solo che le persone vengono confuse.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top