oryginal-ruby-on-rails-21-tworzenie-nowoczesnych-aplikacji-internetowych_rubypo.pdf

(9794 KB) Pobierz
656647205 UNPDF
Tworzenie nowoczesnych
aplikacji internetowych
Autor: JarosĀaw ZabieĀĀo
ISBN: 83-246-0631-9
Format: 158x235, stron: 216
Wydawnictwo Helion
ul. Koľciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Poznaj nowoczesne technologie programistyczne
¤ Jak zainstalowaě i skonfigurowaě Ruby on Rails?
¤ W jaki sposb korzystaě z frameworka Rails?
¤ Jak ĀĴczyě aplikacje Ruby z bazami danych?
¤ Jak wdraŃaě aplikacje Rails?
Jķzyk Ruby, opracowany w Japonii, dĀugo pozostawaĀ jednĴ z wielu tajemniczych
âzabawekÒ, przeznaczonych dla niewielkiej garstki pasjonatw. Jednak gdy w roku
2005 powstaĀ framework Rails, technologia Ruby on Rails rozpoczķĀa swj triumfalny
pochd przez ľwiat internetu. Ruby on Rails to niesamowite narzķdzie, przeznaczone
do tworzenia witryn WWW i aplikacji sieciowych. Przyspiesza ono i upraszcza proces
programowania, wdroŃenia oraz rozwijania aplikacji. Ruby on Rails w ciĴgu kilku lat
wyrosĀo na powaŃnego konkurenta jķzyka PHP, zdobywajĴc coraz wiķcej zwolennikw.
KsiĴŃka âRuby on Rails. Tworzenie nowoczesnych aplikacji internetowychÒ
to podrķcznik, dziķki ktremu poznasz tajniki programowania w Ruby i korzystania
z frameworka Rails. Dowiesz siķ, jak zainstalowaě i skonfigurowaě RoR na stacji
roboczej i serwerze sieciowym, jak zbudowana jest aplikacja tworzona w Ruby on Rails,
czym jest model MVC i na czym polega programowanie adaptacyjne (agile). Poznasz
elementy jķzyka Ruby i mechanizmy Rails, nauczysz siķ tworzyě interfejs uŃytkownika
dla aplikacji, implementowaě komunikacjķ z bazami danych oraz wykorzystywaě
techniki programowania obiektowego. Przeczytasz o wbudowanych w Rails
mechanizmach testowania, usuwaniu bĀķdw, ĀĴczeniu kodu Ruby z jķzykiem
JavaScript i wdraŃaniu aplikacji RoR w ľrodowisku produkcyjnym.
¤ Podstawowe zaĀoŃenia Ruby on Rails
¤ Instalacja ľrodowiska na stacji roboczej
¤ NajwaŃniejsze elementy jķzyka Ruby i frameworka Rails
¤ Struktura projektu w Ruby on Rails
¤ Tworzenie widokw za pomocĴ szablonw Haml/Sass
¤ Implementacja logiki aplikacji
¤ Praca z bazami danych
¤ RSpec i testy behawioralne (BDD)
¤ AJAX, jQuery i nieinwazyjny JavaScript
¤ Fusion Passenger i serwery asynchroniczne
¤ Praktyczna konfiguracja serwerw Nginx i Apache 2.x
¤ JRuby on Rails, Ruby 1.9, Rubinius, MagLev, Merb
Nadchodzi era Ruby on Rails. BĴdł na niĴ przygotowany
Ruby on Rails 2.1.
656647205.001.png 656647205.002.png 656647205.003.png 656647205.004.png
Spis treści
Rozdział 1. Wprowadzenie .................................................................................. 7
Czym jest Ruby on Rails? ................................................................................................ 8
Programowanie adaptacyjne i szybka pętla sprzężenia zwrotnego ................................... 9
Rails jako fronton do relacyjnej bazy danych ................................................................. 10
Podstawowe założenia .................................................................................................... 10
MVC ......................................................................................................................... 10
DRY ......................................................................................................................... 12
Konwencja ponad konfiguracją ................................................................................ 12
Prowadzenie za rękę ................................................................................................. 13
Magia i konwencje ................................................................................................... 13
Instalacja ......................................................................................................................... 14
Ruby ......................................................................................................................... 14
RubyGems ................................................................................................................ 14
Rails ......................................................................................................................... 15
Rozdział 2. Architektura Rails .......................................................................... 17
Struktura katalogów ........................................................................................................ 17
Moduły składające się na Rails ....................................................................................... 21
Tworzenie projektów RoR .............................................................................................. 22
Stworzenie projektu dla określonej wersji ................................................................ 23
Zamrożenie bieżącej wersji ...................................................................................... 23
Zamrożenie dowolnej wersji .................................................................................... 23
Zamrożenie zewnętrznych gemów ........................................................................... 23
Odmrożenie projektu ................................................................................................ 24
Model-Widok-Kontroler ................................................................................................. 24
Active Support ................................................................................................................ 24
Rozszerzenie logiki boolowskiej Ruby’ego ............................................................. 24
Rozszerzenia dla napisów ........................................................................................ 25
Obsługa Unicode ...................................................................................................... 25
Rozszerzenia dla liczb .............................................................................................. 26
Rozszerzenia dla dat i czasu ..................................................................................... 27
Serializacja do XML, JSON i YAML ...................................................................... 28
Rozdział 3. Warstwa kontrolera ........................................................................ 29
Generator kodu ............................................................................................................... 29
Zawężanie dostępu do akcji ............................................................................................ 30
Renderowanie odpowiedzi dla serwera .......................................................................... 30
Dowolna akcja .......................................................................................................... 31
Dowolny plik ............................................................................................................ 32
4
Ruby on Rails 2.1. Tworzenie nowoczesnych aplikacji internetowych
Dowolny tekst .......................................................................................................... 32
Dowolny szablon ...................................................................................................... 32
Włączanie podszablonów ......................................................................................... 33
Odpowiedzi zależne od nagłówka MIME ................................................................ 33
Filtry ............................................................................................................................... 34
before_filter .............................................................................................................. 35
after_filter ................................................................................................................. 35
around_filter ............................................................................................................. 36
Cookies i sesje ................................................................................................................37
Routing ........................................................................................................................... 39
map.connect ............................................................................................................. 39
map.root ................................................................................................................... 40
Reguły nazwane ....................................................................................................... 40
map.with_options ..................................................................................................... 40
Reguły ze znakami globalnymi ................................................................................ 41
Sprawdzanie reguł .................................................................................................... 42
Helpery do generowania adresów ............................................................................. 45
Zawężanie dozwolonych wartości ............................................................................ 46
Rozdział 4. Warstwa modelu ............................................................................ 47
Active Record ................................................................................................................. 47
Dynamiczna konfiguracja połączenia ....................................................................... 48
Połączenia do różnych baz ....................................................................................... 50
Równoczesna praca z wieloma bazami .................................................................... 54
Migracje ................................................................................................................... 54
CRUD ....................................................................................................................... 59
Metody statystyczne ................................................................................................. 68
Relacje ...................................................................................................................... 68
Walidacje ................................................................................................................. 77
Wywołania zwrotne (callbacks) ............................................................................... 77
Magiczne pola .......................................................................................................... 78
AR jako zewnętrzna biblioteka ................................................................................ 78
Reguła „cienkiego” klienta i „wypasionego” modelu ..................................................... 79
Rozdział 5. Warstwa widoku ............................................................................ 81
Szablony Rails 2.x i typy MIME .................................................................................... 81
ERb ................................................................................................................................. 82
Unikanie niebezpiecznych danych ........................................................................... 82
Zmienne w szablonach ............................................................................................. 83
Szablony wzorcowe i zagnieżdżone ......................................................................... 84
Podszablony w pętli ................................................................................................. 86
Inne rodzaje szablonów .................................................................................................. 87
Haml i Sass ............................................................................................................... 87
Erubis ....................................................................................................................... 90
Liquid ....................................................................................................................... 90
Markaby ................................................................................................................... 90
MasterView .............................................................................................................. 91
Rozdział 6. Cache ............................................................................................ 93
Pamięć operacyjna .......................................................................................................... 94
Pliki na dysku .................................................................................................................94
DRb ................................................................................................................................ 94
Memcached .................................................................................................................... 94
Buforowanie całych stron ............................................................................................... 98
Buforowanie fragmentów szablonu ................................................................................ 99
Spis treści
5
Rozdział 7. Debugowanie ............................................................................... 101
Logger i pliki logowania ............................................................................................... 101
Interaktywna konsola .................................................................................................... 102
Tryby pracy ............................................................................................................ 103
Kolorowanie i dodatkowe ustawienia irb ............................................................... 103
Podglądanie w konsoli kodu SQL .......................................................................... 103
Tryb piaskownicy ................................................................................................... 104
Debuger ........................................................................................................................ 104
Introspekcja obiektów ................................................................................................... 105
Firebug i Web Development — pluginy Firefoksa ....................................................... 105
Netbeans 6.x i debugowanie Rails w trybie graficznym ............................................... 106
Rozdział 8. Pluginy ........................................................................................ 109
Zarządzanie pluginami ................................................................................................. 110
Miejsce i kolejność ładowania ................................................................................ 110
Instalacja ................................................................................................................ 110
Piston ...................................................................................................................... 111
RaPT ...................................................................................................................... 112
Deinstalacja ............................................................................................................ 112
Aktualizacja ............................................................................................................ 112
Dostępna lista i źródła lokalizacji ........................................................................... 113
Tworzenie własnych pluginów ..................................................................................... 113
Rozdział 9. Architektura REST ........................................................................ 115
Poza MVC .................................................................................................................... 115
Interfejs REST .............................................................................................................. 116
Tworzenie zasobu ................................................................................................... 116
Własne metody ....................................................................................................... 117
Active Resource ............................................................................................................ 118
Obsługa błędów ...................................................................................................... 119
Uaktywnienie Action Web Service w Rails 2.x ............................................................ 120
Rozdział 10. Testowanie .................................................................................. 121
BDD vs. TDD ............................................................................................................... 122
RSpec ........................................................................................................................... 122
Instalacja ................................................................................................................ 123
Sposób budowania „oczekiwań” ............................................................................ 123
Mocks & Stubs ....................................................................................................... 127
RSpec User Stories, RCov i Autotest w akcji ............................................................... 131
Instalacja potrzebnych gemów ............................................................................... 131
Instalacja potrzebnych pluginów ............................................................................ 135
Konfiguracja połączeń do baz ................................................................................ 135
Tworzenie baz ........................................................................................................ 135
Scenariusze oczekiwań ........................................................................................... 136
Rozdział 11. JavaScript & Ajax ......................................................................... 145
Nieinwazyjny JavaScript .............................................................................................. 146
Obsługa zdarzeń JS ....................................................................................................... 146
JS.ERB vs. JS.RJS ........................................................................................................ 148
Alternatywne biblioteki JS ........................................................................................... 149
jQuery ..................................................................................................................... 149
MooTools ............................................................................................................... 150
Yahoo YUI ............................................................................................................. 150
ExtJS ...................................................................................................................... 151
6
Ruby on Rails 2.1. Tworzenie nowoczesnych aplikacji internetowych
Rozdział 12. Wersje międzynarodowe ............................................................... 153
Ri18n i GLoc ................................................................................................................ 154
Globalize ...................................................................................................................... 155
Ustawienie kodowania UTF-8 ................................................................................ 155
Instalacja ................................................................................................................ 157
Konfiguracja ........................................................................................................... 157
Dynamiczne przełączanie wersji językowej ........................................................... 158
Tłumaczenie szablonów ......................................................................................... 159
Tłumaczenie danych trzymanych w bazie .............................................................. 162
Część danych w bazie, część w plikach .................................................................. 164
Dodatkowe informacje ........................................................................................... 165
Rozdział 13. Wdrożenie .................................................................................... 167
Apache + Fusion Passenger .......................................................................................... 167
Apache/Nginx + mongrel_cluster/Thin/Ebb ................................................................. 169
Serwery przetwarzające kod Ruby’ego .................................................................. 169
Serwery przetwarzające pliki statyczne .................................................................. 176
Win32 + mongrel_service ............................................................................................ 181
Gdy nie działa mongrel_service… ......................................................................... 182
Rozdział 14. Edytory IDE .................................................................................. 183
Textmate ....................................................................................................................... 183
Netbeans 6 .................................................................................................................... 184
JEdit .............................................................................................................................. 185
Aptana Studio (RadRails) ............................................................................................. 187
Arachno IDE ................................................................................................................. 187
Komodo 4 ..................................................................................................................... 188
RDE .............................................................................................................................. 189
Podsumowanie .............................................................................................................. 190
Rozdział 15. Opcje Ruby’ego ............................................................................ 191
Ruby 1.8 MRI ............................................................................................................... 191
Ruby Enterprise ............................................................................................................ 191
Ruby 1.9 + YARV ........................................................................................................ 191
JRuby ............................................................................................................................ 192
Tworzenie pliku WAR ........................................................................................... 192
IronRuby ....................................................................................................................... 194
MacRuby ...................................................................................................................... 194
Rubinius ....................................................................................................................... 194
MagLev ........................................................................................................................ 195
Rozdział 16. Merb ............................................................................................ 197
Dodatek A Dodatkowe źródła informacji ......................................................... 201
Książki .......................................................................................................................... 201
Ruby ....................................................................................................................... 201
Rails ....................................................................................................................... 202
Internet ......................................................................................................................... 203
Skorowidz ................................................................................... 205
Zgłoś jeśli naruszono regulamin