Good Ideas

iniziare un progetto con rails

Iniziare un progetto Ruby on Rails con il piede giusto

Posted by:

|

On:

|

,

Quando si inizia un nuovo progetto ci si sente sempre disorientati: difficile capire da cosa cominciare, visto che le azioni da compiere sono tante. Con un’applicazione ruby on rails la procedura di bootstrap è abbastanza laboriosa ma esiste un sistema che ci aiuta a gettare le basi per un buon progetto.

iniziare un progetto con rails

Oltre a creare le cartelle con il framework, ci si deve occupare di scegliere le gemme che ci serviranno, occorre fare un progetto git, magari su github, compilare un .gitignore. Se poi usiamo RVM (che vi consiglio vivamente), è necessario creare il file di configurazione .rvmrc con la gemset appropriata. Queste sono solamente alcune delle operazioni per cominciare. E poi, quale gemma usare per Twitter Bootstrap? Lo usiamo con SASS o con LESS? Quale template engine usare? HAML, ERB o Slim? Quale database preferite tra SQLite, Mysql, MongoDB o Postgres?

Rails ci offre la possibilità di usare dei template già fatti, ovvero strutture prefabbricate su cui poi partire con lo sviluppo. Daniel Kehoe ha pubblicato un template chiamato “Rails Composer” davvero ben fatto e soprattutto comodo. Gli ultimi miei progetti sono nati da Rails Composer e ora è un elemento fondamentale nella mia “cassetta degli attrezzi“.

E’ un template che si occupa di preparare un ambiente di sviluppo completo e già ben formato. Il comando da lanciare da bash è questo:

rails new myapp -m https://raw.github.com/RailsApps/rails-composer/master/composer.rb

dove myapp è il nome dell’applicazione e della cartella che verrà creata con il progetto. Il template prevede 20 domande che serviranno per personalizzare l’applicazione sotto molteplici aspetti. Ho preparato uno screencast con shelr che vi mostra come ho creato una web app con rails usando Rails Composer in pochi minuti. Che ne dite?

rails-composer

Giusto per farvi un’idea, queste sono le personalizzazioni che riesce a gestire:

question  Install an example application?
      1)  I want to build my own application
      2)  rails3-bootstrap-devise-cancan
      3)  rails3-devise-rspec-cucumber
      4)  rails3-mongoid-devise
      5)  rails3-mongoid-omniauth
      6)  rails3-subdomains

question  Web server for development?
      1)  WEBrick (default)
      2)  Thin
      3)  Unicorn
      4)  Puma

question  Web server for production?
      1)  Same as development
      2)  Thin
      3)  Unicorn
      4)  Puma

question  Database used in development?
      1)  SQLite
      2)  PostgreSQL
      3)  MySQL
      4)  MongoDB

question  Template engine?
      1)  ERB
      2)  Haml
      3)  Slim

question  Unit testing?
      1)  Test::Unit
      2)  RSpec

question  Integration testing?
      1)  None
      2)  RSpec with Capybara
      3)  Cucumber with Capybara
      4)  Turnip with Capybara

question  Fixture replacement?
      1)  None
      2)  Factory Girl
      3)  Machinist

question  Front-end framework?
      1)  None
      2)  Twitter Bootstrap
      3)  Zurb Foundation
      4)  Skeleton
      5)  Just normalize CSS for consistent styling

question  Twitter Bootstrap version?
      1)  Twitter Bootstrap (Less)
      2)  Twitter Bootstrap (Sass)

question  Add support for sending email?
      1)  None
      2)  Gmail
      3)  SMTP
      4)  SendGrid
      5)  Mandrill

question  Authentication?
      1)  None
      2)  Devise
      3)  OmniAuth

question  Devise modules?
      1)  Devise with default modules
      2)  Devise with Confirmable module
      3)  Devise with Confirmable and Invitable modules

question  Authorization?
      1)  None
      2)  CanCan with Rolify

question  Use a form builder gem?
      1)  None
      2)  SimpleForm

question  Install a starter app?
      1)  None
      2)  Home Page
      3)  Home Page, User Accounts
      4)  Home Page, User Accounts, Admin Dashboard

extras  Add 'therubyracer' JavaScript runtime (for Linux users without node.js)? (y/n)
extras  Set a robots.txt file to ban spiders? (y/n) n
extras  Create a project-specific rvm gemset and .rvmrc? (y/n) n
extras  Create a GitHub repository? (y/n)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *