SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Ruby on Rails
       albo
(Linus na szynach)


      Tomasz Bąk, jesień 2005
Moje stereotypy o pisaniu
    aplikacji webowych przed
●   „to dobre dla licealistów – mrówcza robota
●   totalny chaos
    –   ile ludzi, tyle „silników” do budowy stron
●   brak pewności, że to się nie wywali
●   pielęgnowanie większego projektu to męka
●   kłopotliwa współpraca z grafikami
    –   wymieszane warstwy logiki i prezentacji
Rails na ratunek

●   dla każdego coś dobrego
●   izolacja danych, logiki i prezentacji
●   sam Ruby jako język zachęca do
    wykorzystywania już istniejącego kodu
●   testy jednostkowe i funkcjonalne
●   zadziwiająco mało kodu – łatwe wprowadzanie zmian
●   grafik ma styczność tylko z warstwą widoku
    –   .rhtml, CSS i JavaScript
Ruby

●   język ma już dziesięć lat, rozwija go japończyk
    – pragmatyk i innowator
●   wszystko jest obiektem (tym razem naprawdę!)
●   wysoce „plastyczny” i zarazem intuicyjny
●   interpreter dostępny na wiele systemów
●   99% bibliotek to open source
●   łatwa instalacja/aktualizacja bibliotek:
    –   np. gem install rails
Ruby on Rails

●   powstał w trakcie prac nad rzeczywistą aplikacją
    –   projekt Basecamp ma dziesiątki tysięcy abonentów
    –   autor zdobył nagrode „Google/O'Reilly's Best
        Hacker of 2005”
●   to kompletne rozwiązanie
●   nacisk na dostosowywanie poprzez kod
●   pozwala bardziej skupić się na wizualnych aspektach,
    a mniej na szczegółach implementacji
Serwery

●   WEBrick
    –   wbudowany serwer WWW
●   Apache
    –   CGI
    –   mod_ruby
    –   mod_fastcgi
●   lighttpd/mod_fastcgi
„Success stories”
●   Basecamp - http://www.basecamphq.com
●   43 Things - http://www.43things.com
●   Ta-da Lists - http://www.tadalist.com
●   Snow Devil - http://www.snowdevil.ca
●   Bellybutton - http://www.bellybutton.de
●   CD Baby (Rewrite) - http://www.cdbaby.com
●   Odeo - http://www.odeo.com
●   A List Apart - http://alistapart.com/articles/ala40
●   podOmatic - http://podomatic.com
●   VitalSource - http://www.vitalsource.com
Więcej na: http://ruby.jamisbuck.org/ujug-presentation/img12.html i

http://www.onlamp.com/pub/a/onlamp/2005/03/03/rails.html?page=3
Skalowalność: case study
          Basecamp
●   działa już od roku
    –   Dual 2.2Ghz Xeon, 2G RAM
    –   "Dziesiątki tysięcy użytkowników z 50 krajów"
●   wykorzystanie pamięci (lighttpd/FastCGI):
    –   50 procesów lighttpd / ok 4Mb każdy
    –   10 procesów FCGI / ok 40Mb każdy
●   plany przejścia na rozproszony system:
    –   1 serwer www, 1 server db, 2 serwery
        aplikacyjne
RoR ... jak ciepłe bułeczki

●   książka o Ruby On Rails na Amazon.com:
    –   w ciągu miesiąca dwa wznowienia
    –   7 miejsce na liście bestselerów komputerowych
●   coraz popularniejsze wśród twórców małych i
    średnich aplikacji webowych nastawionych
    na szybką realizacje i ładny wygląd
    –   rewolucje RoR porównuje się do rewolucji
        Javowskiej na przełomie 1997/98

Más contenido relacionado

La actualidad más candente

PHP@Docker - w produkcji
PHP@Docker - w produkcjiPHP@Docker - w produkcji
PHP@Docker - w produkcjiMarcin Kurzyna
 
Net core (dawniej 5.0) – co to dla mnie. też dużo o open source
Net core (dawniej   5.0) – co to dla mnie. też dużo o open sourceNet core (dawniej   5.0) – co to dla mnie. też dużo o open source
Net core (dawniej 5.0) – co to dla mnie. też dużo o open sourceTomasz Kopacz
 

La actualidad más candente (6)

PHP@Docker - w produkcji
PHP@Docker - w produkcjiPHP@Docker - w produkcji
PHP@Docker - w produkcji
 
Websockety w PHP
Websockety w PHPWebsockety w PHP
Websockety w PHP
 
Swoole w PHP. Czy to ma sens?
Swoole w PHP. Czy to ma sens?Swoole w PHP. Czy to ma sens?
Swoole w PHP. Czy to ma sens?
 
Net core (dawniej 5.0) – co to dla mnie. też dużo o open source
Net core (dawniej   5.0) – co to dla mnie. też dużo o open sourceNet core (dawniej   5.0) – co to dla mnie. też dużo o open source
Net core (dawniej 5.0) – co to dla mnie. też dużo o open source
 
Webassembly
WebassemblyWebassembly
Webassembly
 
8 powodów dla których warto poznać Ruby
8 powodów dla których warto poznać Ruby8 powodów dla których warto poznać Ruby
8 powodów dla których warto poznać Ruby
 

Similar a Rails tobak2005

Język Ruby - wprowadzenie
Język Ruby - wprowadzenieJęzyk Ruby - wprowadzenie
Język Ruby - wprowadzenieRadarek
 
Ruby, Ruby on Rails 2010
Ruby, Ruby on Rails 2010Ruby, Ruby on Rails 2010
Ruby, Ruby on Rails 2010Natalia Stanko
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...The Software House
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzkeGaldoMedia
 
Agregacja i analiza logów
Agregacja i analiza logówAgregacja i analiza logów
Agregacja i analiza logówDivante
 
PLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł Stefański
PLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł StefańskiPLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł Stefański
PLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł StefańskiPROIDEA
 
Responsive Web Design - kto mało pyta, nie błądzi
Responsive Web Design - kto mało pyta, nie błądziResponsive Web Design - kto mało pyta, nie błądzi
Responsive Web Design - kto mało pyta, nie błądziJakub Wiśniewski
 
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ługowejPROIDEA
 
Tomasz Paszkowski - Loadbalancing ruchu HTTP w sieciach dostawców treści na ...
Tomasz Paszkowski  - Loadbalancing ruchu HTTP w sieciach dostawców treści na ...Tomasz Paszkowski  - Loadbalancing ruchu HTTP w sieciach dostawców treści na ...
Tomasz Paszkowski - Loadbalancing ruchu HTTP w sieciach dostawców treści na ...PROIDEA
 
Pocałunek śmierci
Pocałunek śmierciPocałunek śmierci
Pocałunek śmierciDivante
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowychTomasz Borowski
 
Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayTomasz Dziuda
 
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ówintive
 
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.Wojciech Barczyński
 
Jak wnieść wkład w Open Source?
Jak wnieść wkład w Open Source?Jak wnieść wkład w Open Source?
Jak wnieść wkład w Open Source?Tomasz Bak
 
ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?Michał Dudak
 
Ruby on rails wprowadzenie teoretyczne. Łukasz Szyndzielorz
Ruby on rails wprowadzenie teoretyczne. Łukasz SzyndzielorzRuby on rails wprowadzenie teoretyczne. Łukasz Szyndzielorz
Ruby on rails wprowadzenie teoretyczne. Łukasz SzyndzielorzŁukasz Szyndzielorz
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Divante
 
HYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymDariusz Jagieło
 

Similar a Rails tobak2005 (20)

Język Ruby - wprowadzenie
Język Ruby - wprowadzenieJęzyk Ruby - wprowadzenie
Język Ruby - wprowadzenie
 
Ruby, Ruby on Rails 2010
Ruby, Ruby on Rails 2010Ruby, Ruby on Rails 2010
Ruby, Ruby on Rails 2010
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
 
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
 
PLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł Stefański
PLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł StefańskiPLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł Stefański
PLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł Stefański
 
Responsive Web Design - kto mało pyta, nie błądzi
Responsive Web Design - kto mało pyta, nie błądziResponsive Web Design - kto mało pyta, nie błądzi
Responsive Web Design - kto mało pyta, nie błądzi
 
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
 
Tomasz Paszkowski - Loadbalancing ruchu HTTP w sieciach dostawców treści na ...
Tomasz Paszkowski  - Loadbalancing ruchu HTTP w sieciach dostawców treści na ...Tomasz Paszkowski  - Loadbalancing ruchu HTTP w sieciach dostawców treści na ...
Tomasz Paszkowski - Loadbalancing ruchu HTTP w sieciach dostawców treści na ...
 
Pocałunek śmierci
Pocałunek śmierciPocałunek śmierci
Pocałunek śmierci
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training Day
 
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
 
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
 
Ansible w praktyce
Ansible w praktyceAnsible w praktyce
Ansible w praktyce
 
Jak wnieść wkład w Open Source?
Jak wnieść wkład w Open Source?Jak wnieść wkład w Open Source?
Jak wnieść wkład w Open Source?
 
ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?
 
Ruby on rails wprowadzenie teoretyczne. Łukasz Szyndzielorz
Ruby on rails wprowadzenie teoretyczne. Łukasz SzyndzielorzRuby on rails wprowadzenie teoretyczne. Łukasz Szyndzielorz
Ruby on rails wprowadzenie teoretyczne. Łukasz Szyndzielorz
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13
 
HYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastym
 

Más de Tomasz Bak

Design Patterns in React
Design Patterns in ReactDesign Patterns in React
Design Patterns in ReactTomasz Bak
 
Building React CRUD app in minutes?
Building React CRUD app in minutes?Building React CRUD app in minutes?
Building React CRUD app in minutes?Tomasz Bak
 
How to migrate large project from Angular to React
How to migrate large project from Angular to ReactHow to migrate large project from Angular to React
How to migrate large project from Angular to ReactTomasz Bak
 
e2e testing with cypress
e2e testing with cypresse2e testing with cypress
e2e testing with cypressTomasz Bak
 
How to GraphQL: React Apollo
How to GraphQL: React ApolloHow to GraphQL: React Apollo
How to GraphQL: React ApolloTomasz Bak
 
How to GraphQL
How to GraphQLHow to GraphQL
How to GraphQLTomasz Bak
 
Working with npm packages
Working with npm packagesWorking with npm packages
Working with npm packagesTomasz Bak
 
How to replace rails asset pipeline with webpack?
How to replace rails asset pipeline with webpack?How to replace rails asset pipeline with webpack?
How to replace rails asset pipeline with webpack?Tomasz Bak
 
Functional Reactive Angular 2
Functional Reactive Angular 2 Functional Reactive Angular 2
Functional Reactive Angular 2 Tomasz Bak
 
JavaScript Promises
JavaScript PromisesJavaScript Promises
JavaScript PromisesTomasz Bak
 
Replacing Rails asset pipeline with Gulp
Replacing Rails asset pipeline with GulpReplacing Rails asset pipeline with Gulp
Replacing Rails asset pipeline with GulpTomasz Bak
 
Ulepszanie aplikacji webowej z AngularJS
Ulepszanie aplikacji webowej z AngularJSUlepszanie aplikacji webowej z AngularJS
Ulepszanie aplikacji webowej z AngularJSTomasz Bak
 
Bardziej produktywny gmail
Bardziej produktywny gmailBardziej produktywny gmail
Bardziej produktywny gmailTomasz Bak
 
Testowanie JavaScript
Testowanie JavaScriptTestowanie JavaScript
Testowanie JavaScriptTomasz Bak
 

Más de Tomasz Bak (17)

Design Patterns in React
Design Patterns in ReactDesign Patterns in React
Design Patterns in React
 
Building React CRUD app in minutes?
Building React CRUD app in minutes?Building React CRUD app in minutes?
Building React CRUD app in minutes?
 
How to migrate large project from Angular to React
How to migrate large project from Angular to ReactHow to migrate large project from Angular to React
How to migrate large project from Angular to React
 
JAMstack
JAMstackJAMstack
JAMstack
 
e2e testing with cypress
e2e testing with cypresse2e testing with cypress
e2e testing with cypress
 
How to GraphQL: React Apollo
How to GraphQL: React ApolloHow to GraphQL: React Apollo
How to GraphQL: React Apollo
 
How to GraphQL
How to GraphQLHow to GraphQL
How to GraphQL
 
Working with npm packages
Working with npm packagesWorking with npm packages
Working with npm packages
 
How to replace rails asset pipeline with webpack?
How to replace rails asset pipeline with webpack?How to replace rails asset pipeline with webpack?
How to replace rails asset pipeline with webpack?
 
Functional Reactive Angular 2
Functional Reactive Angular 2 Functional Reactive Angular 2
Functional Reactive Angular 2
 
JavaScript Promises
JavaScript PromisesJavaScript Promises
JavaScript Promises
 
Replacing Rails asset pipeline with Gulp
Replacing Rails asset pipeline with GulpReplacing Rails asset pipeline with Gulp
Replacing Rails asset pipeline with Gulp
 
Ulepszanie aplikacji webowej z AngularJS
Ulepszanie aplikacji webowej z AngularJSUlepszanie aplikacji webowej z AngularJS
Ulepszanie aplikacji webowej z AngularJS
 
Bardziej produktywny gmail
Bardziej produktywny gmailBardziej produktywny gmail
Bardziej produktywny gmail
 
Kerberos
KerberosKerberos
Kerberos
 
Ldap novell
Ldap novellLdap novell
Ldap novell
 
Testowanie JavaScript
Testowanie JavaScriptTestowanie JavaScript
Testowanie JavaScript
 

Rails tobak2005

  • 1. Ruby on Rails albo (Linus na szynach) Tomasz Bąk, jesień 2005
  • 2. Moje stereotypy o pisaniu aplikacji webowych przed ● „to dobre dla licealistów – mrówcza robota ● totalny chaos – ile ludzi, tyle „silników” do budowy stron ● brak pewności, że to się nie wywali ● pielęgnowanie większego projektu to męka ● kłopotliwa współpraca z grafikami – wymieszane warstwy logiki i prezentacji
  • 3. Rails na ratunek ● dla każdego coś dobrego ● izolacja danych, logiki i prezentacji ● sam Ruby jako język zachęca do wykorzystywania już istniejącego kodu ● testy jednostkowe i funkcjonalne ● zadziwiająco mało kodu – łatwe wprowadzanie zmian ● grafik ma styczność tylko z warstwą widoku – .rhtml, CSS i JavaScript
  • 4. Ruby ● język ma już dziesięć lat, rozwija go japończyk – pragmatyk i innowator ● wszystko jest obiektem (tym razem naprawdę!) ● wysoce „plastyczny” i zarazem intuicyjny ● interpreter dostępny na wiele systemów ● 99% bibliotek to open source ● łatwa instalacja/aktualizacja bibliotek: – np. gem install rails
  • 5. Ruby on Rails ● powstał w trakcie prac nad rzeczywistą aplikacją – projekt Basecamp ma dziesiątki tysięcy abonentów – autor zdobył nagrode „Google/O'Reilly's Best Hacker of 2005” ● to kompletne rozwiązanie ● nacisk na dostosowywanie poprzez kod ● pozwala bardziej skupić się na wizualnych aspektach, a mniej na szczegółach implementacji
  • 6. Serwery ● WEBrick – wbudowany serwer WWW ● Apache – CGI – mod_ruby – mod_fastcgi ● lighttpd/mod_fastcgi
  • 7. „Success stories” ● Basecamp - http://www.basecamphq.com ● 43 Things - http://www.43things.com ● Ta-da Lists - http://www.tadalist.com ● Snow Devil - http://www.snowdevil.ca ● Bellybutton - http://www.bellybutton.de ● CD Baby (Rewrite) - http://www.cdbaby.com ● Odeo - http://www.odeo.com ● A List Apart - http://alistapart.com/articles/ala40 ● podOmatic - http://podomatic.com ● VitalSource - http://www.vitalsource.com Więcej na: http://ruby.jamisbuck.org/ujug-presentation/img12.html i http://www.onlamp.com/pub/a/onlamp/2005/03/03/rails.html?page=3
  • 8. Skalowalność: case study Basecamp ● działa już od roku – Dual 2.2Ghz Xeon, 2G RAM – "Dziesiątki tysięcy użytkowników z 50 krajów" ● wykorzystanie pamięci (lighttpd/FastCGI): – 50 procesów lighttpd / ok 4Mb każdy – 10 procesów FCGI / ok 40Mb każdy ● plany przejścia na rozproszony system: – 1 serwer www, 1 server db, 2 serwery aplikacyjne
  • 9. RoR ... jak ciepłe bułeczki ● książka o Ruby On Rails na Amazon.com: – w ciągu miesiąca dwa wznowienia – 7 miejsce na liście bestselerów komputerowych ● coraz popularniejsze wśród twórców małych i średnich aplikacji webowych nastawionych na szybką realizacje i ładny wygląd – rewolucje RoR porównuje się do rewolucji Javowskiej na przełomie 1997/98