#195 My Favorite Web Apps in 2009
L’episodio di questa settimana sarà un po’ diverso rispetto al solito, in quanto vi mostreremo alcune fra le migliori applicazioni per sviluppatori Rails del 2009. Tutte le seguenti applicazioni aiuteranno a migliorare le vostre applicazioni Rails in un modo o nell’altro. Passiamo subito alla prima.
Github
La prima applicazione della lista non ha bisogno di presentazioni: Github. Se siete dei programmatori, allora dovreste davvero usare questo sito. Github ha molte funzionalità che sono un po’ meno conosciute, ma tuttavia utili, come per esempio Gists, che è un sistema pratico per condividere pezzi di codice. Vale anche la pena di dare un’occhiata alla sezione di aiuto di Github, poichè contiene una marea di articoli per aiutarvi ad ottenere il massimo da Git e Github.
Gemcutter
La seconda applicazione della nostra lista è Gemcutter, il posto fondamentale dove depositare i vostri RubyGems. Gemcutter è stato trattato nell’episodio 183 [guardalo, leggilo], ma da allora è diventato persino più semplice da usare. In precedenza di doveva invocare il comando gem tumble
per installare i gem da Gemcutter, ma ora non è più necessario da momento che i gem ospitati su RubyForge ora puntano a Gemcutter, rendendolo il miglior posto da cui installare i gem.
Ciò che rende Gemcutter così prezioso è la faciltà con cui ci permette di pubblicare i nostri gem. Ci vogliono solo i tre passaggi elencati nello screenshot di sopra. La sola parte potenzialmente problematica è la creazione del file gemspec
, ma anche quel passaggio può essere reso più semplice usando il gemspec di un altro gem come esempio. Un buon esempio da copiare è il file gemspec del gem CanCan di Ryan Bates:
Gem::Specification.new do |s| s.name = "cancan" s.summary = "Simple authorization solution for Rails." s.description = "Simple authorization solution for Rails which is completely decoupled from the user's roles. All permissions are stored in a single location for convenience." s.homepage = "http://github.com/ryanb/cancan" s.version = "1.0.2" s.date = "2009-12-30" s.authors = ["Ryan Bates"] s.email = "ryan@railscasts.com" s.require_paths = ["lib"] s.files = Dir["lib/**/*"] + Dir["spec/**/*"] + ["LICENSE", "README.rdoc", "Rakefile", "CHANGELOG.rdoc", "init.rb"] s.extra_rdoc_files = ["README.rdoc", "CHANGELOG.rdoc", "LICENSE"] s.has_rdoc = true s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "CanCan", "--main", "README.rdoc"] s.rubygems_version = "1.3.4" s.required_rubygems_version = Gem::Requirement.new(">= 1.2") end
Un file gemspec tipo quello di sopra può essere modificato per venire incontro alle esigenze del proprio progetto. Il file è semplice da cambiare direttamente ogniqualvolta si crei una nuova versione del vostro gem e di conseguenza potete fare la build e il push dello stesso per rilasciare la nuova versione.
Caliper
Il prossimo è Caliper. Potreste ricordarvelo dall’episodio 166 [ guardalo, leggilo] in cui abbiamo trattato il gem metric_fu. Caliper sostanzialmente è una versione on-line di metric_fu e rappresenta un ottimo metodo per ottenere informazioni di metrica su qualsiasi applicazione Rails ospitata su di un reporistory Git. Per usarlo, è sufficiente che inseriate l’URL del repository e in pochi secondi il sito vi restituirà tutte le informazioni di metrica di quel progetto:
Potete vedere le informazioni circa il rapporto test/code, sul codice obsoleto e su molti altri dettagli riguardanti la vostra applicazione Rails, in modo tale che abbiate un supporto al miglioramento del codice. Se trovate un gem o un plugin che volete usare, lo potreste esaminare con Caliper per scoprire quanto è pesante e se è stato ben progettato e scritto.
Rdoc.info
Un altro sito utile è rdoc.info. Se cercate della documentazione per un determinato progetto Ruby su Github, provate questo sito e cercate il progetto che vi interessa. Se non è in lista, potete aggiungerlo e l’RDoc sarà generato automaticamente e reso disponibile.
RunCodeRun
Un altra applicazione superlativa è RunCodeRun. Si tratta di un semplice server di continuous integration. Occorre semplicemente farlo puntare ad un applicazione presente nel repository Github e questo sito lancerà i test di tale applicazione e genererà un report sul fatto che siano passati o meno. RunCodeRun è gratuito per i repository pubblici e vale la pena di provarlo. Una volta che ha lanciato i test, potrete navigarne i risultati per vedere quali sono stati superati e quali no.
RunCodeRun utilizza il rake task di default della vostra applicazione per lanciare i test. Ciò significa che potreste modificare questo task per fargli fare qualsiasi cosa vogliate. Nel Rakefile
della vostra applicazione potreste puntare, ad esempio, ai task :spec
e :features
, in modo tale da fargli eseguire i test di Rspec e Cucumber:
task :default => [:spec, :features]
The Ruby Toolbox
The Ruby Toolbox è un’immensa risorsa. Spesso, quando si sta sviluppando una nuova applicazione Rails, ci si domanda quale gem o plugin usare per un determinato compito. The Ruby Toolbox è un modo eccellente per trovare quale gem o plugin sia disponibile per gestire le diverse categorie di compiti. Per esempio, se la vostra applicazione necessita di un sistema di versionamento, potrete trovare su questo sito un elenco di di progetti adatti allo scopo e la documentazione su come usarli.
New Relic
Un’altra applicazione che dovreste utilizzare in ogni vostra applicazione Rails di produzione è NewRelic RPM. Si tratta di un’applicazione utilissima per scovare problemi di performance nelle vostre applicazioni e garantire che il tutto giri decentemente e continui a farlo nel tempo. Anche nella versione gratuita, RPM Lite, sono prodotte abbastanza informazioni utili ad identificare i colli di bottiglia della vostra applicazione e c’è la possibilità di tenere sotto controllo come sta andando il tutto.
Learnivore
Se siete dei fan degli screencast, allora Learnivore fa al caso vostro. Vi si trovano un gran numero di screencast sia gratuiti, sia a pagamento, fra cui anche i Railscast. Learnivore è una risorsa da tenere bene in considerazione.
Infine, Ryan ha gentilmente menzionato ASCIIcasts come uno dei suoi siti preferiti, ma dal momento che evidentemente vi ci trovate già, sapete già tutto quello che c’è da sapere a rigurado.