Rubin na szynach

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).

Główne cechy języka Ruby

- 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.

Z kolei język programowania Ruby, stworzony w 1995 r. przez Yukihiro Matsumoto jest interpretowany, w pełni obiektowy i dynamicznie typowany. Bazuje on na wielu językach, takich jak Lisp, Perl, Python, Smalltalk, CLU czy Eiffel, jego składnia jest zorientowana liniowo i oparta na składni CLU i Perla. Język ten uzyskał bardzo dużą popularność dzięki dopracowanemu Ruby on Rails, który ułatwia szybkie opracowanie gotowej aplikacji WWW. Jednym z przykładów jest utworzenie kodu obsługującego gotowy blog internetowy w czasie rzędu kilkunastu minut.

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 Server, Sqlite, IBM DB2, OpenBase oraz Sybase.


TOP 200