SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Ruby on Rails


  Gabriel Ščerbák
Ruby
●   Objektovo orientovaný jazyk založený na
    posielaní správ:
    class XML
          def method_missing(msg, *args, &block)
                puts "<#{msg}>#{args[0]}</#{msg}>"
          end
    end
    document = XML.new
    document.title “New document“
Ruby
●   Prky funkcionálneho programovania - closures
    class XML
          def method_missing(msg, *args, &block)
                args.each do |value|
                      puts "<#{msg}>#{value}</#{msg}>"
                end
          end
    end
    XML.new.name “John“, “Jack“, “Joe“, “Justin“, “Julian“
Ruby
●   Dynamické typovanie
●   Metaprogramovanie, otvorené triedy, symboly,...
●   Key Value Coding pomocou asociatívnych polí
●   Minimalistická syntax, nepovinné zátvorky,
    nepovinné bodkočiarky, end na konci bloku
    kódu namiesto zložených zátvoriek okolo,...
Rails
●   Konvencia pred konfiguráciou, scaffolding
●   Architektúra MVC s podporou štýlu REST
    $ ruby script/generate scaffold Recipe title:string 
    chef:string instructions:text
●   Views pre index, show, new a edit operácie
●   Layout a CSS pre Recipes
●   Controller, Helper, funkčný test a presmerovanie URL
    adries v štýle REST pre Recipes
●   Model, migrácia, unit test a testovacie dáta pre Recipe
Rails
●   Množina interných doménovo špecifických
    jazykov
    # routes.rb
    map.resources :projects
    map.task_archive 'tasks/:year/:month', :controller =>
    'tasks', :action => 'archive'
    map.home '', :controller => 'projects', :action =>
    'index'
Rails
●   Vzor Active Record spolu s migráciami a rake
    db:* úlohami úplne abstrahujú od databázu
    $ruby script/generate model Folder
    class Folder < ActiveRecord::Base
          acts_as_tree
          belongs_to :user
          has_many :messages, :class_name => "Message"
    end
    $rake db:migrate
Ekosystém
●   Runtime platformy: MRI, JRuby, IronRuby,
    MacRuby, MagLev, Rubinius
●   Konzultácie, tréning, konferencie, knihy, ...
●   Ukladanie dát: MySQL, Oracle, MongoDB, Redis
●   Možnosti nasadenia: Engine Yard, Heroku,...
●   Hosting projektov: GitHub, RubyForge,...
●   IDE: TextMate, Netbeans, Eclipse, Aptana
    RadRails,
Ruby on Rails v praxi



 Basecamp      Twitter    Shopify




Yellow pages   GitHub    Lighthouse
Ďakujem za Vašu pozornosť!

Mais conteúdo relacionado

Semelhante a Ro r

Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]David Lukac
 
Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]David Lukac
 
Úvod do vývoja pre Windows Phone 7 II
Úvod do vývoja pre Windows Phone 7 IIÚvod do vývoja pre Windows Phone 7 II
Úvod do vývoja pre Windows Phone 7 IIIgor Kulman
 
Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JSsrigi
 
MongoDB: Repository for Web-scale metadata
MongoDB: Repository for Web-scale metadataMongoDB: Repository for Web-scale metadata
MongoDB: Repository for Web-scale metadatatkramar
 
MONOGRAM Tech Mondays: REDIS
MONOGRAM Tech Mondays: REDISMONOGRAM Tech Mondays: REDIS
MONOGRAM Tech Mondays: REDISTomas Majer
 
Junior Internet 2015 - PHP moderne a správne
Junior Internet 2015 - PHP moderne a správneJunior Internet 2015 - PHP moderne a správne
Junior Internet 2015 - PHP moderne a správneTomáš Tatarko
 

Semelhante a Ro r (7)

Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]
 
Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]
 
Úvod do vývoja pre Windows Phone 7 II
Úvod do vývoja pre Windows Phone 7 IIÚvod do vývoja pre Windows Phone 7 II
Úvod do vývoja pre Windows Phone 7 II
 
Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JS
 
MongoDB: Repository for Web-scale metadata
MongoDB: Repository for Web-scale metadataMongoDB: Repository for Web-scale metadata
MongoDB: Repository for Web-scale metadata
 
MONOGRAM Tech Mondays: REDIS
MONOGRAM Tech Mondays: REDISMONOGRAM Tech Mondays: REDIS
MONOGRAM Tech Mondays: REDIS
 
Junior Internet 2015 - PHP moderne a správne
Junior Internet 2015 - PHP moderne a správneJunior Internet 2015 - PHP moderne a správne
Junior Internet 2015 - PHP moderne a správne
 

Ro r

  • 1. Ruby on Rails Gabriel Ščerbák
  • 2. Ruby ● Objektovo orientovaný jazyk založený na posielaní správ: class XML def method_missing(msg, *args, &block) puts "<#{msg}>#{args[0]}</#{msg}>" end end document = XML.new document.title “New document“
  • 3. Ruby ● Prky funkcionálneho programovania - closures class XML def method_missing(msg, *args, &block) args.each do |value| puts "<#{msg}>#{value}</#{msg}>" end end end XML.new.name “John“, “Jack“, “Joe“, “Justin“, “Julian“
  • 4. Ruby ● Dynamické typovanie ● Metaprogramovanie, otvorené triedy, symboly,... ● Key Value Coding pomocou asociatívnych polí ● Minimalistická syntax, nepovinné zátvorky, nepovinné bodkočiarky, end na konci bloku kódu namiesto zložených zátvoriek okolo,...
  • 5. Rails ● Konvencia pred konfiguráciou, scaffolding ● Architektúra MVC s podporou štýlu REST $ ruby script/generate scaffold Recipe title:string chef:string instructions:text ● Views pre index, show, new a edit operácie ● Layout a CSS pre Recipes ● Controller, Helper, funkčný test a presmerovanie URL adries v štýle REST pre Recipes ● Model, migrácia, unit test a testovacie dáta pre Recipe
  • 6. Rails ● Množina interných doménovo špecifických jazykov # routes.rb map.resources :projects map.task_archive 'tasks/:year/:month', :controller => 'tasks', :action => 'archive' map.home '', :controller => 'projects', :action => 'index'
  • 7. Rails ● Vzor Active Record spolu s migráciami a rake db:* úlohami úplne abstrahujú od databázu $ruby script/generate model Folder class Folder < ActiveRecord::Base acts_as_tree belongs_to :user has_many :messages, :class_name => "Message" end $rake db:migrate
  • 8. Ekosystém ● Runtime platformy: MRI, JRuby, IronRuby, MacRuby, MagLev, Rubinius ● Konzultácie, tréning, konferencie, knihy, ... ● Ukladanie dát: MySQL, Oracle, MongoDB, Redis ● Možnosti nasadenia: Engine Yard, Heroku,... ● Hosting projektov: GitHub, RubyForge,... ● IDE: TextMate, Netbeans, Eclipse, Aptana RadRails,
  • 9. Ruby on Rails v praxi Basecamp Twitter Shopify Yellow pages GitHub Lighthouse
  • 10. Ďakujem za Vašu pozornosť!