2009-08-30 11 views
5

Sono (abbastanza) un programmatore esperto ma totalmente nuovo a Ruby e Ruby on Rails.L'ultimo 20% in Ruby on Rails

RoR è perfetto per funzionare rapidamente, specialmente per la generazione automatica dello schermo per le operazioni CRUD.

È davvero produttivo.

Le domande sono con l'ultimo 20% del lavoro, quando devo finire la mia domanda. Le convenzioni del RoR non saranno d'ostacolo? Perché non tutte le tabelle di database devono essere disponibili per tutti gli utenti e non tutti gli utenti possono modificare tutte le colonne e/o tutte le righe e le viste devono essere adattate all'aspetto del sito, ecc.

Ho capito che il RoR è stato usato con successo in siti live, ma in che modo guadagni abbastanza velocità in RoR per sfuggire alla gravità dopo che la prima fase è stata bruciata.

+7

Sembra che tu stia confondendo "mettiti sulla mia strada" con "non fare il lavoro per me", giudicando almeno dai tuoi esempi. (Devi progettare le viste per adattarle all'aspetto del tuo sito? Com'è che un esempio di Rails si intromette?) – Chuck

+0

Buon punto, Chuck. –

risposta

7

Non credo che l'impalcatura ti porti all'80%. Il ponteggio è bello in quanto mostra come i pezzi di Rails combaciano, ma non vorrei costruire la mia applicazione dal codice dello scaffolding. Ora che sei stato colpito dalle impalcature, è meglio che te ne dimentichi. :)

Nei casi in cui Rails brilla davvero nella mia mente è database migrations, la bellezza di come ActiveRecord è dinamico e l'ecosistema di plugin.

C'è molto da imparare quando si decide di utilizzare Rails. Hai una nuova lingua, un nuovo framework e nuovi plugin - ma se ti prendi il tempo per imparare queste cose puoi essere molto produttivo con Rails.

+6

Oh, accidenti, non sto scherzando. L'impalcatura non * significa * per portarti vicino a un'applicazione completa. +1 – Chuck

+0

Uso il ponteggio, ma solo con generatori personalizzati. –

1

Le convenzioni del RoR non mi stanno di ostacolo? Perché non ogni tabella del database deve essere disponibile per tutti gli utenti, e non tutti gli utenti possono modificare tutte le colonne e/o tutte le righe, e il punto di vista deve essere adattato allo sguardo del mio sito e si sentono, ecc

Questo è un po 'un non-sequitur. Rails è un framework che è stato rimosso dalle applicazioni del mondo reale. Quelle applicazioni dovevano affrontare anche tutte quelle questioni, così come altre che non avresti mai potuto immaginare. In generale, le convenzioni rendono la vita più facile una volta apprese.

Un altro punto è che le convenzioni sono solo convenzioni. Non devi seguirli. Non è nemmeno necessario utilizzare RoR per tutto, anche se devo ancora trovare un caso in cui non l'ho fatto/non posso, generalmente cerco di spingere il più possibile nel DB o nei livelli di cache possibili.

5

Ho fatto rubino su rotaie per un bel po '. Il problema 80/20 non è unico per le rotaie. Si applica generalmente al mondo intero. Inoltre non sono a conoscenza di alcun framework che possa solo fare la logica aziendale per te.

Per rispondere alle vostre domande specifiche. Le convenzioni non ti ostacolano mentre fai il 20%. Invece, le convenzioni ti aiuteranno a superare quel 20% più velocemente.

Personalmente, per l'autenticazione utente, utilizzo Authlogic. Per l'autorizzazione dell'utente, utilizzo il plug-in Lockdown o il plugin di autorizzazione in base alle esigenze del cliente.

Uso anche inherited_resource nella maggior parte dei miei progetti per semplificare il codice del controller. Questo è un altro potere di convenzione.

Per aumentare la velocità di sviluppo, non solo avrai bisogno di conoscere Rails, bensì gemme/plugin che fanno le cose giuste per te, così non dovrai reinventare nuovamente le ruote. Inoltre, conoscere il linguaggio Ruby è un must per svilupparsi rapidamente oltre l'80%.

Ruby Toolbox fornisce alcune delle gemme e plug-in più comuni utilizzati nei progetti di binari tipici rivolti a domini specifici. Puoi guardare attraverso le categorie pertinenti e sapere cosa usa la maggior parte delle persone. (Ed è probabilmente una buona idea usare gemme popolari e ben mantenute)

Lo sviluppo in stile TDD/BDD ti aiuterà anche a velocizzare nel lungo periodo.

Infine, un avvertimento: se ci si allontana dalla convenzione di rotaie, si avrà un tempo doloroso in generale.

P.S. Ho usato Merb prima. La mia sensazione è che le convenzioni ti aiutano in merito, ma non otterrai troppe penalità per non averle seguite in merito. Tuttavia, la mia esperienza con Rails è che se decidi di non seguire la convenzione di rails mentre sviluppi l'app per rails, tornerà a morderti in un modo o nell'altro! Quindi pensaci due volte quando hai veramente tentato di allontanarti dalle convenzioni dei binari ... (Questo è dalla mia esperienza personale, e ovviamente soggettivo, ma puoi pensare ad esso come un avvertimento ...)

0

Io non credi che avrai mai un problema serio con le convenzioni di Rails. Basta attenersi alle convenzioni e affidarsi al sistema RoR. Le persone dietro a Rails hanno fatto un grande sforzo in queste convenzioni per supportare il 99% degli scenari di utilizzo comuni.

Se davvero hai bisogno di fare qualcosa al di fuori delle convenzioni, alla fine si complicherà abbastanza velocemente. Tuttavia, non sei solo. Ci sono un sacco di risorse eccellenti in rete per ottenere aiuto (ad esempio, la community di StackOverflow).

Per riassumere: