Rubin na szynach
- 20.01.2009
Ruby on Rails jest narzędziem do szybkiego budowania aplikacji WWW. Niedawno poinformowano, że wchłonie on konkurencyjny projekt Merb. Czym jest RoR?
Ruby on Rails jest narzędziem do szybkiego budowania aplikacji WWW. Niedawno poinformowano, że wchłonie on konkurencyjny projekt Merb. Czym jest RoR?
Framework Ruby on Rails (często nazywany RoR lub Rails) został stworzony przez duńskiego programistę Davida Heinemeiera Hanssona. RoR napisano w języku Ruby z użyciem architektury Model-Widok-Kontroler - MVC (Model-View-Controller).
- dynamiczne typowanie,
- prosta składnia,
- automatyczne czyszczenie pamięci z tzw. śmieci,
- iteratory,
- przeciążanie operatorów,
- normalne i zaawansowane właściwości zorientowania obiektowego (klasa, metoda ...),
- obsługa wyjątków, liczb całkowitych o dowolnych rozmiarach i wyrażeń regularnych wbudowanych w składnię,
- dodawanie metod do instancji klasy,
- wygodne przekazywanie funkcji jako parametrów,
- zmienne leksykalne modyfikowalne w czasie działania programu,
- wysoka przenośność między platformami,
- niewielka objętość kodu.
Głównym założeniem RoR - który wykorzystuje architekturę MVC - jest wyodrębnienie trzech składników programu, są nimi: model danych, interfejs użytkownika i logika sterowania. Z tego modelu korzystają frameworki przeznaczone do szybkiego projektowania aplikacji WWW. Przykładem, oprócz Rails, mogą być frameworki PHP (Code Igniter, Akelos, CakePHP czy Zend Framework), bardzo prosty i lekki TinyMVC, Calatyst wykorzystujący Perla oraz Pylons i TurboGears, które są napisane w Pythonie. Frameworki do operacji bazodanowych wykorzystują modele i ORM, co uniezależnia od konkretnego typu bazy danych i upraszcza typowe operacje, takie jak stronicowane wyświetlanie danych czy ich edycję.
Jak to działa
RoR składa się z czterech głównych elementów - mechanizmu mapowania relacyjno-obiektowego ORM (Object-Relational Mapping), bibliotek klas tworzących kontrolery i widoki, dodatki do standardowej biblioteki Ruby oraz biblioteki wysyłającej wiadomości poczty elektronicznej. Kod programu umieszcza się w kontrolerze, a dane, które przetwarza, przekazuje się do odpowiedniego widoku. Za pomocą bibliotek szablonów generowany jest HTML, ale inny rodzaj widoku może generować PDF albo XML.
W praktyce klient, którym jest przeglądarka internetowa, po wyświetleniu wygenerowanej strony HTML wysyła do aplikacji żądanie. Może ono pochodzić z kliknięcia linku lub wysłania formularza. Żądanie przejmuje przez kontroler, który generuje odpowiedź wysyłaną z powrotem do klienta w formie HTML, pobierając dane z modelu, który w Rails implementowany jest jako relacyjna baza danych. Rails wspiera różne bazy danych, jedynym warunkiem jest istnienie odpowiedzialnej za jej obsługę biblioteki dla Ruby oraz obsługa danej bazy przez mechanizm ORM (ActiveRecord). Mogą to być bazy MySQL, PostgreSQL, Oracle, Microsoft SQL Server, Sqlite, IBM DB2, OpenBase oraz Sybase.