Ruby on Rails Supersilnik WWW Łukasz Włodarczyk
Spis Treści Co to jest Ruby? Dlaczego Ruby? Co to jest Rails? Historia Ruby on Rails Filozofia Ruby on Rails Jak działa technologia Rails? Ruby on Rails i MVC Podział Rails na komponenty Serwery obsługiwane przez Ruby on Rails Bazy danych wspierane przez Ruby on Rails Środowisko Pracy Przykładowe Komercyjne Aplikacje 10 powodów dla których warto używać Rails Ciekawe Źródła
Co to jest Ruby? Krótka Odpowiedź: Ruby jest pomyślną kombinacją języków: Smalltalk Python Perl CLU Eiffel LISP Dłuższa Odpowiedź: Dobrze zobaczmy następne slajdy
Co to jest Ruby? Ruby jest Interpretowany Jak Perl, Python Objektowo-zorientowany Jak Smalltalk, Eiffel, Ada, Java Szybko zyskuje nowych zwolenników w US i Europie Powstał w Japonii, gdzie jest bardzo popularny
Dlaczego Ruby? Łatwy do nauczenia Open source Mnogość dowiązań i bibliotek Możliwość rozszerzania języka Do każdej klasy możemy dodać metody, składowe, lub nadpisać te już istniejące Prawdziwa obiektowość Wszystko jest obiektem (nie ma typów prymitywnych)
Dlaczego Ruby? Dodatkowe narzędzia Rake program do budowy skryptów ala Makefile ruby gems pozwala na instalację za pomocą jednego polecenia dowolnej potrzebnej biblioteki czy pakietu IRB interaktywny interpreter ri przeglądarka dokumentacji
Dlaczego Ruby? Zwięzłość Rails Programy pisane w Ruby mogą być bardzo krótkie, nie tracąc nic na czytelności Popularny framework MVC Radość Dba nie tylko o użytkownika ale również o programistę
Przykładowy Kod Programu
Historia Ruby on Rails Stworzony przez Davida Hanssona Opublikowany w lipcu 2004 roku na stronie Basecamp firmy 37Signals Wersje Ruby on Rails: Wersja 1.0 13 Grudzień 2005 Wersja 1.1 28 Marzec 2006 Najnowsza 1.1.6 10 Sierpień 2006
Filozofia Ruby on Rails Co czyni Railsy innymi od pozostałych? Convention over Configuration czyli konwencja ponad konfiguracją - domyślna konfiguracja wyekstrahowana z tego, czego używa się najczęściej Separacja i integracja - dostajemy od razu pełen pakiet i rzadko, kiedy będziemy zmuszeni sięgać do dodatkowych rozwiązań Dynamika na wiele sposobów i znaczeń - nigdy więcej restartowania serwera
Filozofia Ruby on Rails Zwinność (agility) w 2001 założono Agile Manifesto - regularne wypuszczanie kolejnych wersji programu, dokładne testowanie modułowe i funkcjonalne wszystkich komponentów Ruby pod podszewką Ruby jest wspaniałym językiem i Rails używa go wszędzie DRY czyli (Don t repeat yourself) DRY czyli (Don t repeat yourself) koniec plików konfiguracyjnych XML a, które opisują struktury już raz opisane w kodzie
Jak działa technologia Ruby on Rails? żądanie klienta (wpisanie adresu w przeglądarce) 1 kontroler 4 3 2 widok model baza danych
Jak działa technologia Ruby on Rails? Model-Widok-Kontroler Pozwala na automatyczne wykonanie przez framework wielu podstawowych czynności niezbędnych do stworzenia aplikacji, a wykonywanych w innych technologiach przez programistę. Automatyzacja wynika bezpośrednio z architektury (budowy) frameworka Ruby on Rails.
Jak działa technologia Ruby on Rails? Gdy użytkownik wpisze w przeglądarce adres http://localhost:3000/nazwakontrolera/nazwaakcji 1 4 odpowiedni kontroler wywoła 3 zdefiniowaną w nim akcję na przykład powodującą wyświetlenie napisu 4 Jeśli żądanie będzie dotyczyło modyfikacji w bazie danych, 4 kontroler posiłkuje się modelem 2 Wynik działania kontrolera przekazywany jest do widoku, gdzie generowana jest strona HTML stanowiąca odpowiedź serwera na wysłane żądanie. 4 4
Ruby on Rails i MVC Model (ActiveRecord) Zajmuje się reprezentacją danych, na których aplikacja będzie operować i relacjami pomiędzy danymi Walidacja jest częścią modelu Przeważnie jeden model odzwierciedla jedną tabelę w bazie danych
Ruby on Rails i MVC Widok (ActionView) Widok (ActionView) Odpowiedzialny za wyświetlenie tego, co widzimy w przeglądarce internetowej Udostępnia podstawowe elementy formularzy języka HTML Daje możliwość łatwego skorzystania z takich mechanizmów jak stronicowanie i wiele innych ciekawych rzeczy
Ruby on Rails i MVC Kontroler (ActionController) Kontroler (ActionController) Zajmuje się wykonywaniem wszystkich akcji, czyli metod Odpowiada za komunikację między Modelem a Widokiem Kontroler jest niejako centrum dowodzeniowym całej aplikacji
Podział Rails na komponenty Action Record Odpowiedzialny za model, zapewnia komunikację z bazą danych Action Controller W filozofii MVC zajmuje się wykonywaniem wszystkich akcji, czyli metod Action View Odpowiedzialny za to co widzimy w przeglądarce internetowej, udostępnia podstawowe elementy formularzy HTML
Podział Rails na komponenty Action Mailer Odpowiedzialny za wysyłanie i odbieranie wiadomości poczty elektronicznej Action Web Service Pozwalający na tworzenie Web Services, czyli wyeksportowanie części funkcjonalności twojej aplikacji innym użytkownikom, programistom, programom Prototype Biblioteka w JavaScript, realizująca wszystkie Ajaxowe możliwości
Serwery obsługiwane przez Ruby on Rails WEBrick - wbudowany w środowisko Rails Apache Cherokee Nginx Lighttpd
Bazy Danych wspierane przez Ruby on Rails MySQL PostgreSQL SQLite MS SQL Server Oracle FireBird DB2
Środowisko Pracy Zwykły edytor tekstowy EMACS JEdit RadRails TextMate
Komercyjne Aplikacje Rails Basecamp http://www.basecamphq.com Dwoje ludzi miesiąc pracy 4,000 linii kodu
Komercyjne Aplikacje Rails 43 Things http://43things.com 5 ludzi 2,5 miesiąca tworzenia aplikacji 7,000 linii kodu 9,000 zarejestrowanych użytkowników 200,000 odwiedzin dziennie
Komercyjne Aplikacje Rails SnowDevil http://www.snowdevil.ca 2 twórców aplikacji 6,000 linii kodu 4 miesiące tworzenia aplikacji
Komercyjne Aplikacje Rails Shopify http://shopify.com
Komercyjne Aplikacje Rails ODEO http://odeo.com
10 Powodów dla których warto wypróbować Ruby on Rails I. Zręczne programowanie aplikacji WWW II. III. IV. Łatwe dodanie do tworzonych stron ciekawych, dynamicznych efektów (AJAX i biblioteka JS Prototype) Skupienie się na rozwoju aplikacji a nie na zarządzaniu frameworkiem Wraz z rozwojem aplikacji, możliwe jest utrzymanie ich w dobrym stanie. V. Nasi klienci częściej słyszą odpowiedź Tak
10 Powodów dla których warto wypróbować Ruby on Rails I. Testowanie jest wbudowane we framework II. III. IV. Natychmiastowe efekty zmian: zmień kod, kliknij odśwież i zmiany są widoczne Metaprogramowanie oznacza, że mogę programować na bardzo wysokim poziomie Generatory kodu umożliwiają mi szybkie rozpoczęcie pracy V. Brak plików konfiguracyjnych XML
Ciekawe Źródła Ruby Rails Main Ruby Site http://www.ruby-lang.org/pl/ RubyForge http://rubyforge.org/ Strona Rails http://www.rubyonrails.org/ Tutorial Rails http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html http://www.onlamp.com/pub/a/onlamp/2005/03/03/rails.html Ajax w Rails http://www.onlamp.com/