SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
Co nowego w Rails 3?


Piotr Macuk <piotr@macuk.pl>
O mnie
●
    Projektant, programista
●
    Konsultant, manager
●
    10 lat aplikacje webowe
●
    Perl => PHP => Python => Ruby
●
    5 lat produkcyjnie Ruby on Rails (0.11)
Czym jest Rails 3?

„Rails 3.0 is ponies and rainbows! It’s going
to cook you dinner and fold your laundry.
You’re going to wonder how life was ever
possible before it arrived. It’s the Best
Version of Rails We’ve Ever Done!”


Rails 3.0 = Rails 2.x + Merb 1.x
Rails 3.0 = 4000 commits, 250 autorów
Co nowego
●
    Konfiguracja
●
    Bundler
●
    Całkiem nowy router
●
    ActiveModel (ARel)
●
    AbstractController (ActionController,
    ActionMailer)
●
    ActionMailer (Mail)
●
    Dyskretny (unobtrusive) JavaScript
●
    I18n
Konfiguracja
●   config/environment.rb => 
    config/application.rb
●   script/* => script/rails
●   config.gem => Gemfile
●   Rails.root/app/*
●   RAILS_ROOT => Rails.root
●   RAILS_ENV => Rails.env
Bundler
●
    Zarządzanie zależnościami
●
    Systematyczność
●
    Powtarzalność
●
    Gemfile
●
    Grupy
●
    Wsparcie dla git-a (branch, tag)
Całkiem nowy router
●
    Niezależny od Rails
●
    Ładniejsza składnia (DSL)
●
    Bezpośrednie wejście do Rack
●
    Obsługa subdomen
●
    Opcjonalne segmenty
ActiveModel
●
    Abstrakcja dla różnych ORM
●
    Validacje, observery, I18n, serializacja,
    state machine i wiele innych do wzięcia
●
    ActiveRecord
    ●
        ARel, ActiveRelation, łańcuchy
    ●
        Lazy loading
    ●   where, select, group, having, joins, 
        order, limit, from, scope, …
    ●   post.errors.on => post.errors[]
ActiveRelation
●   Post.find(:all, 
    :conditions => {:author => 'John'}, 
    :includes => :comments, 
    :order => 'title', :limit => 20)

●   Post.where(:author => 'John').
    include(:comments).
    order(:title).
    limit(20)
ActionMailer
●
    Mail zamiast Tmail
●   ActionMailer < AbstractController
●   app/mailers/*
●   Mail::Message#deliver
●
    Nagłówki, załączniki, załączniki „inline”
●
    Automatyczny encoding
Widoki
●
    Dyskretny (unobtrusive) JavaScript
●
    Zabezpieczenie przed XSS
●   <%=h @post.title %> => 
    <%= @post.title %>
●   <%=raw @post.safe_title %>
●
    HTML5 w helperach
●
    I18n w label
●
    Erubis
Dlaczego warto
●
    Lepsza wydajność
●
    Bezpieczeństwo
●
    Lepsza architektura
●
    Spójne API
●
    Segmentacja
●
    Agnostycyzm
●
    „It’s the Best Version of Rails Ever!”
Jak zacząć
●   Ruby w wersji 1.8.7 lub 1.9.2
●   rvm
●   $GEM_HOME, $GEM_PATH
●   gem install rails ­­pre
●   plugin rails_upgrade
Linki
●
    http://guides.rails.info/
●
    http://railscasts.com/
●
    http://railsdispatch.com/
Pytania?
Dziękuję za uwagę :)


Piotr Macuk <piotr@macuk.pl>

Más contenido relacionado

Similar a Co nowego w rails 3

Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użycia
Wojciech Lichota
 
Rails tobak2005
Rails tobak2005Rails tobak2005
Rails tobak2005
Tomasz Bak
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzke
GaldoMedia
 

Similar a Co nowego w rails 3 (20)

It od kuchni w nokaut.pl
It od kuchni w nokaut.plIt od kuchni w nokaut.pl
It od kuchni w nokaut.pl
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl
 
Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Clouds
 
Mikrousługi w allegro
Mikrousługi w allegroMikrousługi w allegro
Mikrousługi w allegro
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użycia
 
Rails tobak2005
Rails tobak2005Rails tobak2005
Rails tobak2005
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
 
tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?
 
Space Wars Hack - Class #1
Space Wars Hack - Class #1Space Wars Hack - Class #1
Space Wars Hack - Class #1
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzke
 
Agregacja i analiza logów
Agregacja i analiza logówAgregacja i analiza logów
Agregacja i analiza logów
 
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowejMateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
 
Shall we play a game? PL version
Shall we play a game? PL versionShall we play a game? PL version
Shall we play a game? PL version
 
Skalowanie PostgreSQL @ DBConf.PL 2014
Skalowanie PostgreSQL @ DBConf.PL 2014Skalowanie PostgreSQL @ DBConf.PL 2014
Skalowanie PostgreSQL @ DBConf.PL 2014
 
Domain Driven Development
Domain Driven DevelopmentDomain Driven Development
Domain Driven Development
 
Nie tylko C# - Ekosystem Microsoft dla programistów
Nie tylko C# - Ekosystem Microsoft dla programistówNie tylko C# - Ekosystem Microsoft dla programistów
Nie tylko C# - Ekosystem Microsoft dla programistów
 
[PL] PRUG Luty 2022 - Service objecty to za mało - jak żyć z Railsami?
[PL] PRUG Luty 2022 - Service objecty to za mało - jak żyć z Railsami?[PL] PRUG Luty 2022 - Service objecty to za mało - jak żyć z Railsami?
[PL] PRUG Luty 2022 - Service objecty to za mało - jak żyć z Railsami?
 
Łagodne wprowadzenie do Angular2
Łagodne wprowadzenie do Angular2Łagodne wprowadzenie do Angular2
Łagodne wprowadzenie do Angular2
 
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
 

Co nowego w rails 3

  • 1. Co nowego w Rails 3? Piotr Macuk <piotr@macuk.pl>
  • 2. O mnie ● Projektant, programista ● Konsultant, manager ● 10 lat aplikacje webowe ● Perl => PHP => Python => Ruby ● 5 lat produkcyjnie Ruby on Rails (0.11)
  • 3. Czym jest Rails 3? „Rails 3.0 is ponies and rainbows! It’s going to cook you dinner and fold your laundry. You’re going to wonder how life was ever possible before it arrived. It’s the Best Version of Rails We’ve Ever Done!” Rails 3.0 = Rails 2.x + Merb 1.x Rails 3.0 = 4000 commits, 250 autorów
  • 4. Co nowego ● Konfiguracja ● Bundler ● Całkiem nowy router ● ActiveModel (ARel) ● AbstractController (ActionController, ActionMailer) ● ActionMailer (Mail) ● Dyskretny (unobtrusive) JavaScript ● I18n
  • 5. Konfiguracja ● config/environment.rb =>  config/application.rb ● script/* => script/rails ● config.gem => Gemfile ● Rails.root/app/* ● RAILS_ROOT => Rails.root ● RAILS_ENV => Rails.env
  • 6. Bundler ● Zarządzanie zależnościami ● Systematyczność ● Powtarzalność ● Gemfile ● Grupy ● Wsparcie dla git-a (branch, tag)
  • 7. Całkiem nowy router ● Niezależny od Rails ● Ładniejsza składnia (DSL) ● Bezpośrednie wejście do Rack ● Obsługa subdomen ● Opcjonalne segmenty
  • 8. ActiveModel ● Abstrakcja dla różnych ORM ● Validacje, observery, I18n, serializacja, state machine i wiele innych do wzięcia ● ActiveRecord ● ARel, ActiveRelation, łańcuchy ● Lazy loading ● where, select, group, having, joins,  order, limit, from, scope, … ● post.errors.on => post.errors[]
  • 9. ActiveRelation ● Post.find(:all,  :conditions => {:author => 'John'},  :includes => :comments,  :order => 'title', :limit => 20) ● Post.where(:author => 'John'). include(:comments). order(:title). limit(20)
  • 10. ActionMailer ● Mail zamiast Tmail ● ActionMailer < AbstractController ● app/mailers/* ● Mail::Message#deliver ● Nagłówki, załączniki, załączniki „inline” ● Automatyczny encoding
  • 11. Widoki ● Dyskretny (unobtrusive) JavaScript ● Zabezpieczenie przed XSS ● <%=h @post.title %> =>  <%= @post.title %> ● <%=raw @post.safe_title %> ● HTML5 w helperach ● I18n w label ● Erubis
  • 12. Dlaczego warto ● Lepsza wydajność ● Bezpieczeństwo ● Lepsza architektura ● Spójne API ● Segmentacja ● Agnostycyzm ● „It’s the Best Version of Rails Ever!”
  • 13. Jak zacząć ● Ruby w wersji 1.8.7 lub 1.9.2 ● rvm ● $GEM_HOME, $GEM_PATH ● gem install rails ­­pre ● plugin rails_upgrade
  • 14. Linki ● http://guides.rails.info/ ● http://railscasts.com/ ● http://railsdispatch.com/
  • 16. Dziękuję za uwagę :) Piotr Macuk <piotr@macuk.pl>