7

Sono nuovo di Ruby on Rails e ho visto persone utilizzare generatori di piastre automatiche come Rails Brick o Rails Composer per creare sistemi di gestione utenti di tipo boilerplate, ecc. Provenienti da uno sfondo che non si fida del codice generato automaticamente, è buono/pratica legittima in Rails per utilizzare tali sistemi. Inoltre, sto lavorando a un progetto con una startup. Va bene usare questi generatori e quanto è diffusa questa abitudine.Sono ampiamente usati Rails Brick o Rails Composer?

P.S. Le mod si prega di notare che questa non è una domanda che richiede paragoni/opinioni/controversie. Sono curioso della pratica generale in Rails e di quanto spesso viene utilizzato in produzione.

+0

Grande questione - grazie per avermelo chiesto esso, e grazie agli altri utenti/per non segnalazione o la chiusura! – CDub

risposta

17

Sono il manutentore di Rails Composer quindi credo di poter rispondere a questa domanda con autorevolezza.

Rispetto (e condivido) la voglia di costruire da zero. È un impulso salutare. Rails include una funzionalità per i modelli di applicazione (Rails Composer è un modello di applicazione) poiché l'automazione consente di risparmiare tempo e fatica. Per le persone che creano molte app Web, arriva un momento in cui decidi di automatizzare il processo.

Rails Composer offre un vantaggio rispetto ai modelli di applicazione roll-your-own perché è open source, utilizzato da migliaia di sviluppatori con il contributo del codice da parte di molti. Man mano che Rails e le gemme cambiano, Rails Composer viene aggiornato in modo da ottenere una "implementazione di riferimento" corrente ogni volta. Ti offre app starter ben collaudate che integrano tutti i bit e le parti che richiedono modifiche, come RSpec plus Capybara e FactoryGirl, messaggi flash e navigazione con framework front-end Bootstrap o Foundation, Devise o OmniAuth per l'autenticazione, Pundit per l'autorizzazione, e molte utility gem che gli sviluppatori amano aggiungere (Guard, Pry, ecc.). Ti consente di scegliere il tuo stack (ad esempio, ERB, Haml o Slim), offrendo scelte nella misura in cui la community ha offerto opzioni.

Se sei preoccupato per la sicurezza di eseguire uno script di installazione, il codice è open source e utilizzato da migliaia di sviluppatori Rails (puoi vedere oltre 2000 watcher sul repository GitHub). È puramente un modello di applicazione che utilizza la libreria di Thor e, sebbene in teoria qualcuno possa contribuire al codice che ha manomesso i tuoi file, non accetteremo mai una richiesta di pull come quella. Rails Composer offre solo gemme popolari ben note, quindi non sei esposto al rischio potenziale di usare gemme sconosciute.

Rails Composer è ampiamente utilizzato, in particolare da consulenti che creano molte app. Molte delle società di consulenza di spicco hanno un modello di applicazione interno (ad esempio, Bretelle di Thoughbot) e alcuni usano Rails Composer o la gemma rails_apps_composer che genera modelli di applicazione personalizzati.Gli sviluppatori che lavorano su una sola applicazione regolarmente (mantenendo un grande progetto, per esempio) tendono ad essere meno familiari con i modelli di applicazione come Rails Composer, ma è popolare tra gli sviluppatori che avviano molte app.

Stack Overflow non è un luogo per opinioni, quindi se si desidera una gamma di opinioni o di dibattito sui meriti dei modelli di applicazione Rails, Reddit o potrebbe essere un posto migliore per chiedere.

Benvenuti in Stack Overflow! Spero che tutte le tue domande riceveranno una risposta accurata e tempestiva.

1

Oggigiorno la maggior parte delle gemme è così facile da configurare, che penso che non ti serva un generatore del genere. Dopotutto è solo una questione di gusti: mi piace usare la riga di comando e mi piace sapere esattamente cosa c'è nella mia base di codice. Dalla mia esperienza personale, non ho mai visto qualcuno usare una cosa del genere nello sviluppo professionale di Rails, ma chiaramente ci sono persone là fuori che li usano.

Nel primo caso, posso pensare a dove questi generatori hanno senso quando esegui il bootstrap di progetti molto frequentemente. In questo caso, tuttavia, trovo che i generatori esistenti non siano sufficientemente flessibili. Ad esempio, Thoughtbot ha creato il proprio generatore di app chiamato Suspenders, che ovviamente include un insieme di gemme molto apprezzato, ma offre loro esattamente ciò di cui hanno bisogno.

Come nota a margine per quanto riguarda i vostri problemi di sicurezza: per me, gli alberi di dipendenza che sono spanning su quando si utilizzano molte gemme sono una minaccia alla sicurezza molto peggiore. Ad esempio in un progetto Rails di medie dimensioni non è raro dipendere da oltre 100 gemme; nessuno può leggerli tutti. Dovrai fidarti anche di tutti quelli.

8

Sono lo sviluppatore di Prelang che è simile ai generatori che hai menzionato. Differisce aggiungendo la modellazione dei dati, l'integrazione con GitHub e una configurazione più profonda per alcune funzionalità. Come Daniel, credo di avere anch'io autorità su questo e sono d'accordo con la sua risposta molto completa.

Per rispondere alla tua domanda, Prelang è più recente ma è già utilizzato da migliaia di sviluppatori che vanno dai principianti ai negozi di sviluppo.

Mi piacerebbe notare che Prelang (e gli altri costruttori) sono diversi da ciò che si pensa tradizionalmente quando si sente "generazione di codice". Quando lavoro su Prelang, il mio obiettivo è quello di automatizzare "tutto ciò che uno sviluppatore di Rails avrebbe fatto comunque". Prelang genera metodi/codice ma principalmente automatizza i processi di installazione di Gems, imposta i valori di configurazione, crea modelli e esegue i comandi rails. Detto questo, Prelang è supponente in termini di gemme che usa ma ho selezionato le gemme più popolari per ciascuna caratteristica e offrirà la flessibilità di scegliere tra più percorsi una volta ottenuto un po 'più di trazione.

Prelang rende inoltre effettivi commit Git in modo da poter esaminare tutti i commit dopo che il progetto è stato generato dando piena visibilità alla base di codice. Questo ha lo scopo di facilitare ulteriormente le preoccupazioni relative al codice generato.

Erik

+0

Sembra interessante e mi piacerebbe provare questo! Qualche possibilità di ottenere un primo invito alfa :) – user3720088

+0

Se inserisci la tua email nella pagina di destinazione riceverai un invito entro il giorno. –