2009-04-05 14 views
6

Prima di porre questa domanda ho dato un'occhiata ai risultati della ricerca di "Ruby on Rails" qui su SO. Impossibile trovare molto, ma le seguenti (found on this page) mi ha divertitoQuali sono le funzionalità più interessanti di Ruby on Rails, perché sceglierlo?

Personalmente, ho iniziato ad usare html, spostato su php, ruby ​​provato (odiato), scoperto Python/Django .. e sono stato felice mai da.

Ora ecco l'affare. Non ho ancora intenzione personale di imparare Ruby on Rails, ma è l'argomento di una presentazione di gruppo che faccio all'Uni (ei miei compagni hanno scelto l'argomento RoR). Le persone con rancore nei confronti degli studenti che fanno domande tipo compiti a casa dovrebbero partire immediatamente.

Questa domanda è per le persone del RoR che la trovano fantastica. Spero di trovare quelli che sostengono che RoR è il migliore (autori delle testimonianze mozzafiato che si trovano sul sito web del RoR). Cosa rende RoR così eccezionale? Cosa vorresti che i giovani di oggi lo scoprissero poco prima di lasciare l'Uni con una laurea. Prova a suggerire qualcosa che potrebbe radicarsi nelle loro menti e magari navigare nel modo RoR dopo aver lasciato Uni.

Le tue risposte non aiuteranno solo la mia presentazione, ma potrebbero essere la fonte dell'illuminazione per molti.

+0

Che ne dici di provare ASP.NET MVC, rilasciato pochi giorni fa, combina tutte le fantastiche funzionalità di Django, Ruby on Rails e altri framework simili. http://www.asp.net/mvc/ –

+0

Quindi questo dovrebbe essere community-wiki. – Geo

+3

ASP.NET MVC ha tutte le caratteristiche interessanti di Rails? Veramente? –

risposta

8

I blogger in dettaglio su why I love Rails tre anni fa, ma per me la caratteristica numero uno è che rende lo sviluppo di applicazioni Web facile e divertente.

+0

Mi piace molto il blog. Iniziato con Delphi per le stesse ragioni che ho avuto. Lo amo ancora ma lo uso sempre meno ... grazie per il link –

+0

Grazie, felice che ti sia piaciuto! –

+0

+1 per il fattore divertimento. Anch'io ho usato Delphi ai tempi della versione 4 e 6. –

4

per citarne alcuni elementi:

  • grande comunità degli sviluppatori (non dire che Python non)
  • Convenzione sulle rocce di configurazione
  • Può essere utilizzato con JRuby/silvia per fare funzionare su rotaie Server di applicazioni Java. Molto importante quando si tenta di trascinare Enterprise nel 21 ° secolo (Django può essere usato con Jython per funzionare con i server delle applicazioni, ma è meno maturo).
  • Il framework MVC aiuta a mantenere strutturata l'applicazione.
  • Scaffolding e generatori per far muovere il tuo progetto.

Rails non tenta di essere l'unico modo per fare applicazioni web, non è questo l'intento. Soddisfa una serie specifica di bisogni.

1

La mia motivazione principale per l'utilizzo di Rails è il rubino. Ho toccato molte lingue prima di trovare rubino e non ho mai sentito di essere bravo in nessuna di esse. Quando ho incontrato il rubino, tutto ha avuto un senso. È una lingua bellissima; Facile da imparare ma difficile da padroneggiare.

Uso le guide perché soddisfa le mie esigenze come sviluppatore web ed è molto ricco di funzionalità.

+0

Ho letto il blog di John Topley sul perché ama Rails e mi sono sviluppato una specie di simpatia per questo (anche se non l'ho mai provato). È bello anche sentirti, trovarlo fantastico. Ma qualcosa in particolare? Linguaggio rubino: facile da imparare. Aggiungerà alla mia presentazione. Altri motivi per i giovani di provare RoR? –

+0

È un ottimo linguaggio per imparare la oo-programmazione. Ho avuto java e php durante il mio studio, ma ho davvero preso la programmazione quando ho creato ruby ​​/ rails dove tutto era un oggetto. Perché le rotaie? Comunità giovane e vivace, carichi di plug-in per non dover reinventare la ruota ogni volta, db-agnostic ecc. – Maran

4

Questo non è un confronto con Python - è una lista generale di cose che mi piacciono.

  • scrivo molto meno codice di quanto avrei in Java
  • ... E il codice che faccio destra è molto leggibile e mantenibile
  • ho molto raramente bisogno di pensare in cui un certo codice vive o come gestire un compito comune - ha appena il suo posto (ad esle migrazioni sono costruiti in)
  • Non finisce con molte diverse tecnologie su un progetto (Java, EJB, Hibernate, JSP, SQL DDL, Formica, XML, taglibs)
  • interpretato piuttosto che compilato consente di risparmiare un sacco del tempo di sviluppo
+0

Questi sono davvero dei punti davvero carini. Forse dovrebbe sollevare questo come domanda separata, ma non lo farà. Solo per mia curiosità, per quanto tempo credete che una persona esperta di Delphi/Java/PHP/SQL possa imparare RoR? –

+0

Dipende davvero dalla persona.Avevo un background Java e sono stato produttivo in una settimana e ho avuto un'ottima comprensione in un paio di mesi. Se stavi partendo da zero, l'apprendimento di RoR sarebbe molto più semplice di JSP/Struts/Spring/Hibernate. – RichH

2

Onestamente, mi piace il design di Django più di binari, ma mi piace più rubino che pitone. È una cosa personale, perché conosco un sacco di persone che sentono il contrario, ma trovo che il rubino sia uno dei linguaggi più eleganti che abbia mai usato. cercatori dinamiche

13
  • di ActiveRecord:

    Person.find_by_name_and_company_id('Jorge Luis Borges', 42) 
    
  • rjs, scrivendo javascript in Ruby: scoping

    page['element_id'].insert_html :bottom, :partial => 'comment' 
    
  • di ActiveRecord

    class Shirt < ActiveRecord::Base 
        named_scope :red, :conditions => {:color => 'red'} 
        named_scope :dry_clean_only, :joins => :washing_instructions, :conditions => ['washing_instructions.dry_clean_only = ?', true] 
    end 
    
.210

chiamando Shirt.red interroga il db con il "color = 'rosso'" condizione la parte interessante, è che se si combinano più di un esempio di applicazione:

 Shirt.red.dry_clean_only 

costruirà solo una query , con tutte le condizioni e le unioni necessarie per soddisfare entrambi gli scopi.

  • Migrazioni di ActiveRecord, essendo in grado di gestire la struttura db e dati utilizzando record attivo, proprio come nel codice dell'applicazione, con un utilizzo minimo di sql.
+0

+1 per la funzionalità dell'ambito di ActiveRecord e i cercatori del dymanic; ma non sono d'accordo con RJ per il fatto che non uso Scriptaculous. –

+0

Prototype/Scriptaculous non è un requisito come ho capito. Credo che jQuery sia supportato anche per RJS usando un plugin. –

+0

+1 per il riferimento di Borges – Dan

3

Uno dei motivi principali per me è che riporta divertimento alla programmazione web. All'improvviso le cose diventano semplici e alla portata di tutti. non hai bisogno di mesi di codice scricchiolante e non hanno bisogno di tonnellate di codice scritto. puoi fare cose incredibili con solo poche righe.

E ci si sente bene :)

10

strumenti sono circa risolvere i problemi. Non importa se stai parlando degli strumenti in una falegnameria o in un programmatore. Ciò che mi ha impressionato di Rails (e lo è ancora) è che è stato estratto dal framework utilizzato per creare applicazioni web reali ed è stato ripetutamente migliorato da persone che lo hanno ampliato o modificato dopo averlo utilizzato per creare app web reali. Non era un semplice esercizio accademico.

Alcuni dei problemi specifici che rivolge:

  • Per iniziare rapidamente. Se stai cercando di avviare rapidamente un'applicazione web, quali scelte migliori potresti avere di una struttura che specifica una struttura di directory esistente (una basata su MVC), con molti generatori di codice e scelte già preimpostate per te da componenti come libreria JavaScript, supporto test, ORM, ecc. Potresti non essere d'accordo con tutte le scelte, ma puoi assumerle e avere qualcosa che funzioni per l'80% o più di progetti e scambiare qualcosa più tardi se hai una preferenza.

  • Manutenibilità a lungo termine.Le migrazioni consentono di spostare i dati in avanti con la modifica del codice, cosa che accade in qualsiasi applicazione del mondo reale, tuttavia la maggior parte dei framework non ne tiene affatto conto. La separazione di tutte le parti della tua applicazione in una gerarchia di directory già configurata con aree di test, database, configurazione, ecc. Di nuovo aiuta il mantenimento a lungo termine del tuo progetto.

  • Errore umano ridotto. I file di configurazione ti offrono ulteriori opportunità di errore umano. Convenzioni logiche, una volta appreso può evitare errori come il classico nome file o nome di classe errato in un errore del file di configurazione.

  • Riconoscimento di diverse modalità di sviluppo. Rails ha costruito il supporto per l'idea di avere un diverso set di impostazioni per lo sviluppo rispetto a test e produzione. Anche le app reali hanno questo, ma spesso il framework che le circonda non lo ospita e si finisce per dover scambiare i file di configurazione dentro e fuori per ottenere lo stesso effetto (vedi errore umano sopra).

  • Buone pratiche. Diverse cose che ho menzionato sopra abbracciano e incoraggiano buone pratiche di programmazione (MVC, layout di progetto standardizzato, ecc.) Ma Rails è spesso esplicito nel loro incoraggiamento e non solo implicito. Per la prova di ciò che hai bisogno non guardare oltre il suo supporto integrato per lo sviluppo guidato da test.

+0

wow, grazie per questo post. +1 –

+0

+1: anche queste sono le ragioni per me. –