Bruce A. Tate, Curt Hibbs ruby on rails. wprowadzenie cała książka.pdf

(9934 KB) Pobierz
888179797.002.png
4.
Rusztowania .................................................................................................................65
Korzystanie z rusztowania
65
Zastępowanie rusztowania
68
Generowanie kodu rusztowania
71
W następnym rozdziale
75
5.
Rozbudowywanie widoków ........................................................................................ 77
Obraz całości
77
Oglądanie rzeczywistych fotografii
79
Szablony widoków
80
Określanie domyślnej strony głównej
86
Arkusze stylów
87
Hierarchiczne kategorie
90
Określanie stylów dla pokazów slajdów
95
6.
Ajax .............................................................................................................................. 103
W jaki sposób Rails implementuje Ajax
103
Odtwarzanie pokazów slajdów
104
Zmienianie porządku slajdów metodą przeciągnij i upuść
107
Przeciąganie i upuszczanie wszystkiego (lub prawie wszystkiego)
111
Filtrowanie według kategorii
119
7.
Testowanie .................................................................................................................. 123
Słowo wprowadzenia
123
Mechanizm Test::Unit języka Ruby
124
Testowanie w środowisku Rails
126
Podsumowując
138
A
Instalowanie Rails ....................................................................................................... 139
B
Krótki leksykon Rails ................................................................................................... 145
Skorowidz .................................................................................................................... 175
4 |
Spis treści
ROZDZIAŁ 1.
Zaczynamy — wprowadzenie do Rails
System Rails jest prawdopodobnie jednym z najważniejszych rozpoczętych w ciągu ostatnich
10 lat projektów otwartego kodu źródłowego (ang. open source ). Promowany jest jako jeden
z najwygodniejszych i najbardziej efektywnych środowisk programowania dla sieci WWW
i — co ważniejsze — oparty jest na coraz bardziej popularnym języku Ruby. Przypomnijmy
pokrótce, co się działo do tej pory:
Do grudnia 2006 roku pojawi się zapewne więcej książek na temat Rails niż na temat któ-
regokolwiek z popularnych środowisk programowania w języku Java takich jak JSF,
Spring czy Hibernate.
Według danych z maja 2006 r. środowisko Rails w ciągu poprzedzających tę datę 12 mie-
sięcy ściągano z poświęconej mu witryny ponad 500 000 razy. Są to dane porównywalne
z tymi, które dotyczą większości najbardziej popularnych środowisk programowania dla
innych języków, rozpowszechnionych na zasadzie otwartego kodu źródłowego 1 .
Na listach dyskusyjnych społeczności użytkowników Rails pojawiają się setki nowych
wpisów dziennie, podczas gdy dla porównania na grupach dyskusyjnych związanych
z innymi środowiskami programowania pojawia się każdego dnia zazwyczaj około kil-
kudziesięciu wiadomości.
Środowisko programowania Rails spowodowało eksplozję popularności języka Ruby,
który do tej pory był raczej mało znany.
Rosnąca popularność Rails jest źródłem coraz gorętszych debat w portalach koncentrują-
cych się na innych językach programowania. Szczególnie burzliwe dyskusje mają miejsce
wśród społeczności programistów języka Java.
Zainteresowani nie muszą długo szukać, by znaleźć znakomite przeglądowe publikacje na
temat Rails. Można już oglądać kilka edukacyjnych filmów pokazujących Rails, w których
twórca środowiska — David Heinemeier Hanson — pokazuje je w działaniu. Można na nich
zobaczyć, jak przygotowuje on proste, działające aplikacje (niemniej z pełną obsługą bazy
danych i sprawdzaniem danych nadchodzących) w mniej niż 10 minut. Ponadto w odróżnieniu
od wielu środowisk umożliwiających szybkie, acz niestaranne programowanie, Rails umożliwia
1 Liczba 500 000 to tak naprawdę dość ostrożny szacunek. Takie dane uzyskać można ze statystyk ściągania
oprogramowania, oferowanych przez najbardziej popularne narzędzie dystrybucji zwane gems (z ang. klej-
noty). Niemniej istnieje również wiele innych dystrybucji środowiska Rails, takich jak Locomotive przezna-
czone dla systemu Mac OS X. Dlatego też prawdziwe statystyki ściągania środowiska Rails są prawdopo-
dobnie dwukrotnie wyższe.
9
888179797.003.png 888179797.004.png
 
szybkie tworzenie aplikacji, dając jednocześnie bardzo porządny kod. Pozwala na budowanie
eleganckich aplikacji dzięki wdrożeniu schematu model-widok-kontroler. Jak widać, Rails to
wyjątkowe środowisko programowania.
Oczywiście środowisko Rails ma też swoje ograniczenia. Język Ruby na przykład dość słabo
obsługuje mapowanie między obiektami a relacyjnymi bazami danych (ORM, ang. object-relational
mapping ) dla schematów dziedziczenia (ang. legacy schemas ). Podejście zastosowane w języku Ruby
nie jest tak dobre jak na przykład rozwiązania języka Java 2 . Język Ruby nadal nie posiada zinte-
growanych środowisk programowania, które mogłyby być jego okrętami flagowymi. Każde
z istniejących dotychczas środowisk ma swoje ograniczenia, więc i Rails także. Niemniej dla bardzo
szerokiego zakresu aplikacji WWW zalety Rails znacznie przeważać będą nad jego słabościami.
Zalety Rails
W trakcie lektury niniejszej książki czytelnicy dowiedzą się, w jaki sposób środowisko Rails
może obywać się bez całego tego zestawu rozbudowanych bibliotek, których potrzebują inne
języki programowania. Dzięki wszechstronności języka Ruby możliwe będzie rozszerzenie
możliwości naszych aplikacji w sposób, o jakim do tej pory się nam nie śniło. Można na
przykład korzystać ze specjalnej funkcji Rails zwanej rusztowaniem (ang. scaffolding ), która po-
zwala szybko przygotować dla klientów interfejs użytkownika umożliwiający kontaktowanie
się z bazą danych. Następnie wraz z modyfikowaniem kodu rusztowanie zacznie się coraz
bardziej stapiać z programem. W ten sposób można przygotować oparte na bazie danych
obiekty modelu, pisząc zaledwie kilka wierszy kodu, a środowisko Rails zajmie się już wszyst-
kimi nużącymi szczegółami technicznymi.
Największym wyzwaniem dla typowych projektów informatycznych w dzisiejszych czasach
jest przygotowanie przeznaczonego dla witryny WWW interfejsu użytkownika, który umoż-
liwiać będzie zarządzanie relacyjną bazą danych. W przypadku tego rodzaju problemów
środowisko Rails okazuje się bardziej efektywne od większości środowisk programowania,
z których mieliśmy okazję korzystać. Jego zalety nie wynikają jednak z żadnego pojedynczego,
cudownego wynalazku; raczej z tego, że środowisko Rails zawiera wiele różnych funkcji zwięk-
szających produktywność programowania, z których kolejne są często budowane w oparciu
o wcześniejsze.
Metaprogramowanie
Techniki metaprogramowania polegają na zaprzęgnięciu programów do pisania opro-
gramowania. Inne środowiska programowania ograniczają się zazwyczaj do generowa-
nia określonych elementów kodu, co pozwala użytkownikowi zaoszczędzić trochę czasu,
ale nie daje innych korzyści. Mogą też oferować skrypty, które umożliwiają dopasowy-
wanie gotowych szablonów kodu do własnych potrzeb, jednak pozwalają na modyfiko-
wanie kodu tylko w nielicznych, starannie wybranych punktach. Metaprogramowanie
zastępuje te dwie, dość prymitywne, techniki, eliminując ich wady. Ruby to jeden z naj-
lepszych języków oferujących możliwość metaprogramowania, a środowisko Rails wyko-
rzystuje ją w sposób wysoce efektywny 3 .
2 Na przykład środowisko Hibernate języka Java obsługuje trzy sposoby mapowania dziedziczenia, natomiast
język Ruby obsługuje tylko dziedziczenie oparte na dziedziczeniu. Hibernate obsługuje również klucze zło-
żone (ang. composite keys ), a Ruby nie.
3 Środowisko Rails korzysta również z tradycyjnej techniki programowania, większość jednak podstawowych
prac wykonuje uciekając się do metaprogramowania.
10 | Rozdział 1. Zaczynamy — wprowadzenie do Rails
888179797.001.png
 
Active Record
Środowisko Rails wprowadza szkielet Active Record (aktywnych rekordów), który służy
do zapisywania obiektów w bazie danych. Opierając się na wzorcu projektowania skata-
logowanym przez Martina Fowlera, wykorzystywana przez Rails wersja szkieletu Active
Record rozpoznaje kolumny w schemacie bazy danych i automatycznie wiąże je z obiek-
tami naszej domeny, korzystając z techniki metaprogramowania. Jest to bardzo prosta,
elegancka i wydajna metoda obudowywania tabel bazy danych.
Konwencje nazewnicze zamiast konfiguracji
Większość środowisk programowania dla języków .NET, czy Java zmusza programistę
do pisania całych stron kodu konfiguracyjnego. Natomiast w przypadku Rails programi-
sta nie musi poświęcać zbyt wiele czasu na konfigurowanie, o ile stosuje się do obowią-
zujących konwencji nazewniczych. Prawdę powiedziawszy, bardzo często daje się zre-
dukować rozmiary kodu konfiguracyjnego nawet pięć lub więcej razy w porównaniu do
podobnych środowisk programowania języka Java tylko dzięki stosowaniu się do ogólnie
przyjętych konwencji nazewniczych.
Rusztowania
Bardzo często programista tworzy na początkowym etapie prac tymczasowy kod, dzięki
któremu może szybko uruchomić aplikację nawet w okrojonej formie, by sprawdzić, jak
jej główne komponenty będą współpracować ze sobą. Środowisko Rails wykonuje więk-
szość takiego rusztowania automatycznie.
Wbudowany mechanizm testowania kodu
Środowisko Rails tworzy proste, zautomatyzowane testy, które później programista mo-
że na własną rękę rozbudowywać. Rails dostarcza również pomocniczego kodu zwanego
uprzężami testowymi (ang. harnesses ) lub osprzętem testowania (ang. fixture ), który ułatwia
pisanie i uruchamianie kolejnych przypadków testowych. Język Ruby pozwala następnie
uruchomić wszystkie zautomatyzowane testy przygotowane przez programistę za pomocą
narzędzia rake .
Trzy oddzielne środowiska: programowania, testowania i produkcyjne
System Rails oferuje właściwie trzy domyślne środowiska: środowisko programowa-
nia, środowisko testowania i środowisko produkcyjne. Każde z nich zachowuje się
odrobinę inaczej, dzięki czemu cały cykl przygotowywania aplikacji staje się znacznie
łatwiejszy. Na przykład Rails tworzy dla każdego uruchamianego testu nową kopię bazy
danych Test.
Oczywiście Rails oferuje jeszcze wiele innych użytecznych funkcji i narzędzi, takich jak na
przykład technologia Ajax ułatwiająca programowanie rozbudowanych interfejsów użyt-
kownika, częściowe widoki, pomoc w ponownym wykorzystywaniu kodu widoku, wbudo-
wane mechanizmy korzystania z pamięci podręcznej i buforowania, szkielet obsługi poczty
elektronicznej i usług WWW. Nie jesteśmy w stanie opisać w tej książce wszystkich opcji
oferowanych przez Rails, niemniej dostarczymy czytelnikowi wskazówek, gdzie może szu-
kać dodatkowych informacji. Najłatwiej jednak przekonać się do Rails, przyglądając mu się
w działaniu, pora więc uruchomić nasze środowisko programowania.
Zalety Rails | 11
Zgłoś jeśli naruszono regulamin