Programowanie, które nie boli

Ruby on Rails to bardzo prosty do nauczenia się język, który istotnie zwiększa produktywność. Dlatego interesuje się nim coraz więcej programistów PHP i Javy.

Ruby on Rails to bardzo prosty do nauczenia się język, który istotnie zwiększa produktywność. Dlatego interesuje się nim coraz więcej programistów PHP i Javy.

Ruby on Rails, czyli inaczej Rails lub w skrócie RoR, to szkielet aplikacji i zestaw bibliotek, które wspomagają tworzenie oprogramowania umożliwiający tworzenie dynamicznych stron WWW. RoR napisany został przy wykorzystaniu Ruby - dynamicznego języka programowania stworzonego przez Yukihiro Matsumoto w 1995 r. W dziedzinie technologii i języków umożliwiających tworzenie dynamicznych stron WWW na rynku panują obecnie PHP, i ASP/ASP .Net. Z ich pomocą stworzyć można zarówno prostego bloga, sklep internetowy, jak i wymagające rozwiązania dla biznesu. Wszechstronność i elastyczność niewątpliwie są ich zaletami, ale jak twierdzi twórca Ruby on Rails, David Heinemeier Hansson, zabierają one przyjemność z programowania. RoR to stosunkowo młody projekt (pierwsza wersja została udostępniona w połowie 2004 r.), który nie jest wspierany przez żadnego wielkiego producenta oprogramowania, a pomimo tego wprowadził zauważalne zamieszanie w środowisku programistów webowych.

Filozofia RoR

Główne filary Ruby on Rails to:

  • podejście agile do tworzenia aplikacji,
  • zasada don't repeat yourself (w skrócie DRY),
  • strategia convention over configuration.

Metodologie typu agile są najczęściej stosowane przy małych i średniej wielkości projektach. Kładą one szczególny nacisk na dostarczanie poszczególnych funkcjonalności oprogramowania w krótkich cyklach obejmujących fazy projektowania, programowania i testów. W ten sposób zleceniodawca może zgłaszać swoje opinie już we wczesnych fazach projektu, a w efekcie programiści nabierają pewności, że produkt odpowiada jego wymaganiom. Tworzenie z duchem agile oznacza też gotowość na ciągłe zmiany wymagań lub struktury kodu. Jest to zdecydowanie łatwiejsze, gdy zarządza się niewielką ilością kodu, co właśnie umożliwia RoR.

Dwie ostatnie zasady prowadzą do dramatycznego zmniejszenia ilości kodu i czasu wymaganego do zarządzania nim. Hasło "konwencja ponad konfigurację" oznacza, że odpowiednie konwencje nazewnicze eliminują potrzebę tworzenia złożonych plików konfiguracyjnych, choć nie oznacza to, że Rails kompletnie eliminuje z projektu pliki konfiguracyjne.

Framework, czyli bolączka programistów i architektów

Wiele osób zapewne zada sobie pytanie: czy gotowy framework nie jest poważnym ograniczeniem programisty? Czy nie tracimy na elastyczności rozwiązania? Odpowiedź jest prosta: tak! Jednak w tym przypadku "ograniczenia wyzwalają". W tradycyjnym podejściu projektowanie architektury poprzedzało fazę kodowania. Zespół lub jego przedstawiciele pracowicie dobierali niezbędne biblioteki, dzielili aplikację na moduły i w ten sposób powstawał framework. Niejednokrotnie proces ten "rozciągał się w czasie", gdyż należało dokładnie przedyskutować i ocenić podjęte decyzje oraz przetestować stworzony kod. Nie muszę przypominać, że klient jest zazwyczaj mało zainteresowany architekturą aplikacji, bo ważniejsze dla niego jest dostarczenie na czas gotowego produktu.

Z Ruby on Rails te problemy nie istnieją, gdyż każdy z projektów stworzonych w RoR ma taką samą strukturę i korzysta z tych samych bibliotek. Dodatkowo zaangażowanie i wdrożenie do projektu nowych programistów nie jest ani kosztowne, ani pracochłonne. Interesujące jest to, że np. na platformie .Net podobny problem adresowany jest od niedawna przez tzw. "software factories" ("fabryki oprogramowania"). Proponowane rozwiązania są jednak o wiele bardziej złożone (CAB, Enterprise Library) niż Rails.

Przetestuj RoR szybko i bezboleśnie z Instant Rails

Najszybszy start z Ruby on Rails na platformie Windows gwarantuje Instant Rails. Mając świeżo w pamięci długą instalację SQL Servera 2005 i Visual Studio 2005 wraz z sp1, nastawiłem się na 2-3 godziny ściągania i instalowania bibliotek. Jakie było moje zaskoczenie, gdy już po ściągnięciu 60 MB archiwum miałem do dyspozycji RoR, serwer WWW Apache, silnik bazodanowy MySQL oraz proste narzędzie do zarządzania bazami (PhpMyAdmin), a to wszystko bez jakiejkolwiek instalacji oraz zmian w systemie! Dla użytkowników Mac OS X odpowiednikiem Instant Rails jest Locomotive.

W sieci

Instant Rails - instantrails.rubyforge.org/wiki/wiki.pl?Instant_Rails

NetBeans 6 ze wsparciem dla JRuby i Rails - www.netbeans.org/community/releases/60/

Oficjalne materiały szkoleniowe - www.rubyonrails.org/screencasts

Dokumentacja - api.rubyonrails.org/

Rails vs Java na wesoło - www.railsenvy.com/2007/5/14/ruby-on-rails-commercial

RoR - pierwsze wrażenia

Początki pracy z Instant Rails przytłaczają. Nie mamy do dyspozycji przyjaznego IDE, a jedynie tekstową konsolę do wpisywania komend. Najszybszym sposobem na wygenerowanie prostej witryny jest zastosowanie scaffoldingu (rusztowania).

Szkielet aplikacji jest generowany po wpisaniu w konsoli komendy

rails Blog

Domyślnie wykorzystywaną w projekcie bazą będzie Blog_development (szczegóły połączenia można znaleźć w pliku config/database.yml). Taką bazę najłatwiej jest wygenerować z poziomu PhpMyAdmin lub dowolnej graficznej nakładki na silnik MySQL.

Nie musimy mozolnie tworzyć struktury bazy za pomocą kodu SQL, wystarczy, że zdefiniujemy ją za pomocą kodu Ruby. Dzięki temu eliminujemy różnice między poszczególnymi systemami bazodanowymi:

#plik db/schema.rb, tabela z postami

ActiveRecord:: Schema.define do

create_table "Posts",: force => true do |t|

t.column "title",: string,: null => false

t.column "content",: text,: null => false

end

end


TOP 200