gtug-ita

Upload: enzorivello

Post on 30-May-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 gtug-ITA

    1/26

    JRUBY ON RAILSSUGOOGLE APP ENGINE

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    2/26

    CHI SIAMO

    Rivello Vincenzo

    Email: [email protected]: enzoriv

    Alessandro De Simone

    Email: [email protected]: alexdesi

    Software Engineer & Developer

    Software Engineer & Developer

    domenica 11 luglio 2010

    mailto:[email protected]:[email protected]
  • 8/9/2019 gtug-ITA

    3/26

    INDICE

    JRuby on Rails su Google App Engine

    Introduzione a Ruby/JRubyIntroduzione a Ruby on Rails

    Pro/Contro di JRoR su GAE

    Esempio di Applicazione

    Conclusioni

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    4/26

    JRUBY SU GOOGLE APPENGINE

    Con il supporto per il linguaggio Java, adessopossibileeseguire codice Ruby su Google App Engine

    Questo grazie ad progetto che ha come scopo quellorendere davvero semplice il l'uso di JRuby per lo

    sviluppo su GAE (come attualmente usato succedeper Java e Python).

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    5/26

    PERCHE USARE RUBY SUGAE?

    Perche' gia' conosci Ruby

    Perche' Ruby e' linguaggio potente e flessibile,"ottimizzato" per le persone piuttosto che per icomputer

    Perche' ti permette di usare Ruby on Rails (v.2.3.5 eda breve v.3.0)

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    6/26

    RUBY/JRUBY

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    7/26

    COS RUBY

    Creato nel 1993 da Yukihiro Matsumoto

    Linguaggio di scripting general purpose

    Completamente ad oggetti

    Ispirato a Smalltalk, Lisp e Perl

    Attualmente arrivato alla versione 1.8.7(stabile)

    Con una comunit giovane e creativa

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    8/26

    COS JRUBY

    Creato da J.A. Petersen nel 2001

    JRuby una implementazione Java del linguaggio di

    programmazione Ruby

    Permette lintreccio fra leleganza di Ruby elecosistema Java

    Stabile e Production Ready (versione 1.5.1)

    Attualmente limplementazione pi veloce di Ruby(dal200% al 500% pi veloce)

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    9/26

    ESEMPIO RUBY/JAVA

    La guerra dei linguaggi non ha senso.Ruby e' compatto, leggibile e flessibile.

    Java e' ha delle ottime performance.

    JRuby permette a Ruby e Java di convivere !

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    10/26

    RUBY PER CHI CONOSCEJAVA

    Ruby e' intepretato

    >ruby my_program.rb

    Java e' compilato>javac MyProgram.java

    >java MyProgram

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    11/26

    USO DEL TYPING DINAMICO

    Le variabili non hanno un type associato.

    Non bisogna dichiararle.Basta assegnare:a = [1,2,3]invece di

    int[] a = {1,2,3};

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    12/26

    RUBY CONCISO

    Programma Vuoto

    RubyJava

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    13/26

    RUBY CONCISO

    Java

    Ruby

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    14/26

    RUBY FRAMEWORKS

    E' possibile scrivere codice Ruby ed eseguirlo conjRuby, questo ci permette di poter creare applicazioni

    per GAE.Se pero' vogliamo scrivere una web app in brevetempo, bisogna usare un framework:

    Ruby on Rails

    Merb

    Sinatra

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    15/26

    RUBY ON RAILS

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    16/26

    RUBY ON RAILS

    RoR e' un framework open-source ottimizzato per la

    felicita' dei programmatori, e per rendere lo sviluppodel codice sostenibile.Con RoR puoi programmare in maniera piu'immediata anche grazie al paradigma "Convention over

    configuration"

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    17/26

    RUBY ON RAILS

    Creato da David Heinemeier Hesson (37 Signals)

    Aderisce agli standard di Sviluppo AgileSistema di sviluppo completo (dalla prototipizzazioneal testing)

    Favorisce la comunicazione allinterno del team

    Moltissimi plugin esistenti che favoriscono unosviluppo veloce

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    18/26

    FILOSOFIA

    Meno codice e codice piu' leggibile

    Nessun ciclo di compilazione

    Convenzione su configurazione (quasi nessun file di configurazione,struttura di directory predefinita)

    Best practices: MVC, DRY(partial, helper, ...), Testing

    Quasi tutto e' Codice RoR (Activerecord per SQL e prototype perJavaScript)

    Community molto attiva, e ottima documentazione (anche video).

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    19/26

    JRUBY SU GAE

    Progetto creato da John Woodell e mantenuto dallacomunit JRuby

    Sfrutta la compatibilit di GAE con Java per portare iframework di sviluppo web per ruby su GAE

    SET-UP molto semplice. Conversione di un sistema

    esistente un p meno.

    Ripensare lapplicazione sotto una prospettiva chiave/valore anzich relazionale

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    20/26

    JRUBY ON GAE - PRO

    SET UP veloce. Pochi comandi e hai gi un sistemabase pronto online.

    Rails Hosting Gratuito (e altamente scalabile)

    Integrazione con la whitelist delle classi Java su GAEIntegrazione con lecosistema dei servizi Google

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    21/26

    JRUBY SU GAE - PRO 2

    Ottimo esercizio per prendere dimestichezza con idatabase NoSql.

    Bigtable infatti un database Chiave/Valore, simile a

    Redis o a MongoDB, ma piu potente.

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    22/26

    JRUBY ON GAE - CONTRO

    Altissimo tempo di start up dellistanza (10-15secondi)

    Un p ostico allinizio: bisogna abituarsi al concetto di

    Cloud Computing e risorse decentralizzate.

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    23/26

    ESEMPIO LIVE

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    24/26

    CONCLUSIONI

    Per noi sviluppatori Rails, GAE ancora lontanodallessere una soluzione stabile per i nostri problemidi hosting.

    Ma senza alcun dubbio , qualcosa sulla quale si vuole

    contare, sopratutto se ci si vuole avvicinare al mondodi JRuby, alle sue interazioni con Rails e GAE.

    domenica 11 luglio 2010

  • 8/9/2019 gtug-ITA

    25/26

    RISORSE E INFORMAZIONI

    Tutorial live:

    http://jror-example.appspot.comCodice sorgente:

    http://github.com/enzor

    Piu informazioni:

    http://rails-primer.appspot.com/

    domenica 11 luglio 2010

    http://rails-primer.appspot.com/http://github.com/enzorhttp://jror-example.appspot.com/http://rails-primer.appspot.com/http://rails-primer.appspot.com/http://github.com/enzorhttp://github.com/enzorhttp://jror-example.appspot.com/http://jror-example.appspot.com/
  • 8/9/2019 gtug-ITA

    26/26

    SI RINGRAZIA