Rails Sztuka programowania.pdf
(
343 KB
)
Pobierz
Rails.
Sztuka programowania
Autor: Edward Benson
T³umaczenie: Rafa³ Joñca
ISBN: 978-83-246-2071-5
Tytu³ orygina³u:
The Art of Rails
Format: 172x245, stron: 336
Oprawa: twarda
•
Jak osi¹gn¹æ najwiêksze korzyœci z architektury MVC?
•
Jak programowaæ, korzystaj¹c z bloków?
•
Jak tworzyæ Web API?
Ruby on Rails przebojem wdar³ siê na rynek szkieletów aplikacji internetowych. Stworzony
w architekturze MVC z wykorzystaniem popularnego jêzyka Ruby, zosta³ entuzjastycznie
przyjêty przez spo³ecznoœæ programistów. G³ówne za³o¿enia tego projektu to ³atwoœæ
i przyjemnoœæ tworzenia kodu, a co za tym idzie — szybkie i efektywne tworzenie aplikacji
internetowych. Liczba rozwi¹zañ, które powsta³y z wykorzystaniem tego szkieletu, œwiadczy
o jego wysokiej jakoœci oraz znacz¹co wp³ywa na wzrost popularnoœci samego jêzyka Ruby.
Je¿eli ta ksi¹¿ka znalaz³a siê w Twoich rêkach, to z pewnoœci¹ powy¿sze wiadomoœci nie s¹ Ci
obce. Kierowana jest ona do programistów, którzy znaj¹ ju¿ Ruby on Rails i pragn¹ pog³êbiæ
swoj¹ wiedzê. Dziêki ksi¹¿ce „Rails. Sztuka programowania” dowiesz siê, jak organizowaæ swój
kod tak, aby osi¹gn¹æ najwy¿sz¹ efektywnoœæ i zachowaæ zgodnoœæ z ide¹ DRY (Don’t Repeat
Yourself). Poznasz zasady zaawansowanego programowania w jêzyku Ruby wraz
z metaprogramowaniem oraz nauczysz siê korzystaæ z programowania opartego na blokach.
Ponadto zapoznasz siê z wzorcami projektowymi dla technologii AJAX, interfejsami
programistycznymi dla WWW, dekompozycj¹ kodu HTML oraz nauczysz siê w wydajny sposób
rozwijaæ schemat bazy danych. Z pewnoœci¹ zainteresuje Ciê rozdzia³ poœwiêcony
programowaniu sterowanym zachowaniem. Te i wiele innych informacji znajdziesz w niniejszej
ksi¹¿ce, która wydaje siê byæ obowi¹zkow¹ dla ka¿dego programisty Ruby on Rails!
•
Ca³a prawda o aplikacjach internetowych
•
Koncepcja Rails
•
Architektura MVC
•
Zarz¹dzanie cyklem ¿ycia aplikacji
•
Korzyœci z zastosowania architektury MVC
•
Zastosowanie technologii ActiveRecord
•
Tworzenie Web API
•
Wykorzystanie zasobów oraz obs³uga ¿¹dañ REST
•
Zastosowanie formatów XML, RSS, RDF
•
Sposoby ograniczania dostêpu do API
•
Wzorce zastosowañ technologii AJAX
•
Zasady programowania z wykorzystaniem bloków
•
Mieszanie i ³atanie klas
•
Wykorzystanie dynamicznego kodu
•
RSpec — programowanie sterowane zachowaniem
•
Cykl programowania
Opanuj sztukê programowania w Ruby on Rails!
Spis treÊci
5
Spis treÊci
O autorze ...................................................................................................................................................11
PodziÂkowania .........................................................................................................................................13
Wprowadzenie .........................................................................................................................................15
RozdziaÄ 1. Rozwój nowego systemu witryn internetowych .................................................................21
Rails, sztuka i nowy internet .......................................................................................... 23
Sztuka i in ynieria ................................................................................................... 23
Nowe witryny WWW ................................................................................................. 24
Prawda o aplikacjach internetowych .......................................................................... 25
Historia pacjenta — witryny internetowe ......................................................................... 26
Od dokumentów do interfejsów ................................................................................ 29
Upadek semantyki .................................................................................................. 30
Witajcie, aplikacje internetowe ................................................................................. 33
Pojawienie siö nowego podej cia ................................................................................... 40
RozdziaÄ 2. Koncepcja Rails .....................................................................................................................41
W jednej czö ci szkielet ................................................................................................ 43
Konfiguracja ........................................................................................................... 43
Kod ....................................................................................................................... 45
Proces ................................................................................................................... 46
W jednej czö ci jözyk .................................................................................................... 48
Modele w Rails ....................................................................................................... 49
Zadania specyficzne dla stron WWW ......................................................................... 51
JavaScript .............................................................................................................. 52
Moduäy dodatkowe .................................................................................................. 53
W dwóch czö ciach sposób my lenia ............................................................................. 53
Witryny internetowe to aplikacje MVC ........................................................................ 54
Aplikacje internetowe to ekosystemy ........................................................................ 54
Konwencja ponad konfiguracjö ................................................................................. 55
Maäe zaäo enie przebywa däugñ drogö ....................................................................... 56
Kwestie estetyczne ................................................................................................. 57
6
Rails. Sztuka programowania
Wyzwalajñce ograniczenia ........................................................................................ 58
Zbyt mocno siö powtarzasz ...................................................................................... 60
Testowanie nie jest opcjonalne ................................................................................ 62
Sieè to zbiór zasobów, a nie usäug ............................................................................ 63
Podsumowanie ............................................................................................................ 64
Zäoty rodek nie istnieje .......................................................................................... 65
Optymizuj swój sposób kodowania, zanim przystñpisz do optymalizacji kodu ................ 65
RozdziaÄ 3. Serwer jako aplikacja ......................................................................................................... 67
Model-widok-kontroler w wersji skróconej ....................................................................... 69
MVC i strony WWW ....................................................................................................... 71
Proces projektowy MVC ................................................................................................. 72
Widok to specyfikacja .............................................................................................. 73
Przykäad — portal spoäeczno ciowy dla kucharzy ........................................................ 74
Zarzñdzanie cyklem ycia aplikacji ................................................................................. 78
My l w sposób lekki, nie in ynieryjny ........................................................................ 78
My l w sposób kontrolowany, a nie organiczny .......................................................... 79
Strze siö operacji na otwartym sercu ....................................................................... 79
Podsumowanie ............................................................................................................ 80
RozdziaÄ 4. Osi¾gniÂcie jak najwiÂkszych korzyÊci z M, V i C ..............................................................81
Najlepsza dokumentacja interfejsów jest gratis ............................................................... 82
Model ......................................................................................................................... 83
Obiekty modeli powinny siö nawzajem rozumieè ......................................................... 84
U yj wyjñtków, by zwiökszyè czytelno è kodu ............................................................. 86
Odwzorowanie z wierszy na obiekty ........................................................................... 89
Asocjacje polimorficzne ........................................................................................... 90
wiat poza ActiveRecord .......................................................................................... 92
Widok .......................................................................................................................... 92
Problem zmiennej ................................................................................................... 93
JavaScript w stylu Rails ........................................................................................... 94
Fragmenty jako atomy i molekuäy .............................................................................. 95
Wybór odpowiednich fragmentów .............................................................................. 97
Widok to nie tylko HTML .......................................................................................... 99
Kontroler ................................................................................................................... 100
CRUD do wielokrotnego zastosowania .................................................................... 101
Rusztowanie w Rails to zbiór operacji CRUD ............................................................ 102
Obsäuga akcji dwukrokowych .................................................................................. 103
Kiedy przekazaè prace na zewnñtrz ......................................................................... 106
Kiedy refaktoryzowaè ............................................................................................. 110
Podsumowanie .......................................................................................................... 111
RozdziaÄ 5. PiÂkne interfejsy aplikacji ...................................................................................................113
Dwa wielkie pomysäy na Web API ................................................................................. 115
Nowy adres URL — adresacja zagadnieþ, nie plików ................................................ 115
Aplikacja to interfejs .............................................................................................. 117
Odwzorowania adresów ............................................................................................... 118
Anatomia wywoäania Web API ...................................................................................... 121
Nakäadanie API ........................................................................................................... 121
Metoda respond_to ............................................................................................... 122
Zapis wyniku w formacie innym ni HTML ................................................................ 124
Spis treÊci
7
Dodanie wäasnych typów MIME .................................................................................... 127
Rejestracja typów w Rails ...................................................................................... 128
Tworzenie wäasnego typu MIME .............................................................................. 129
Ograniczanie dostöpu do API w sposób zgodny z Rails ................................................... 129
Uwierzytelnienie u ytkownika ................................................................................. 130
Algorytm ograniczajñcy .......................................................................................... 131
Wprowadzenie ograniczeþ za pomocñ filtrów ........................................................... 132
Co z usäugami SOAP i XML-RPC ................................................................................... 133
Interfejs usäugi ...................................................................................................... 134
Implementacja usäugi ............................................................................................ 135
Tworzenie struktur ................................................................................................. 136
Podsumowanie .......................................................................................................... 137
RozdziaÄ 6. Zasoby i REST .......................................................................................................................139
Sieè zasobów ............................................................................................................. 141
Identyfikacja zasobów ........................................................................................... 141
Mówienie o zasobach ............................................................................................ 142
Reprezentacja zasobów ......................................................................................... 142
REST ......................................................................................................................... 143
HTTP, czyli CRUD dla zasobów ............................................................................... 144
Definiowanie aplikacji w kategorii zasobów .............................................................. 146
Komunikacja z klientem, czyli zasoby jako API ......................................................... 151
Inny sposób, czyli sieè to komputer ........................................................................ 151
REST i Rails ............................................................................................................... 153
Odwzorowanie zasobów w routerze ......................................................................... 153
Poniewa wiat nie jest idealny, nadal potrzebujemy odwzorowaþ nazwanych ............. 154
Automatycznie tworzone odwzorowania ................................................................... 156
Rusztowanie dla zasobów ...................................................................................... 158
Zagnie d one zasoby ............................................................................................. 158
Zasoby jako singletony czy zasoby tradycyjne .......................................................... 161
Podsumowanie .......................................................................................................... 162
RozdziaÄ 7. PiÂÀ stylów AJAX-a .............................................................................................................163
Wielkie sekrety .......................................................................................................... 165
Niekoniecznie AJAX stanowi najtrudniejszy element systemu .................................... 165
AJAX wymaga podjöcia trudnych decyzji projektowych .................................................... 166
Nawet w Rails mo na zdecydowaè siö na wäasnñ bibliotekö JavaScriptu .................... 167
Piöè stylów AJAX-a ...................................................................................................... 169
Styl po rednika ..................................................................................................... 171
Styl fragmentowy .................................................................................................. 173
Styl marionetkowy ................................................................................................. 175
Kompilacja do JavaScriptu ..................................................................................... 177
Styl bezpo redniej edycji w aplikacji ........................................................................ 179
AJAX jako jeszcze jeden interfejs programistyczny ......................................................... 181
AJAX w stylu Rails ...................................................................................................... 183
Kontroler ajaksowy ze stylem fragmentowym (i AJAX CRUD) ...................................... 183
Kontrolery ajaksowe ze stylem marionetkowym (i RJS) ............................................. 186
Elegancka degradacja ................................................................................................. 189
Cofanie siö ze stylu fragmentowego ........................................................................ 189
Wycofywanie siö z bogatych interfejsów u ytkownika ................................................ 191
Podsumowanie .......................................................................................................... 192
8
Rails. Sztuka programowania
RozdziaÄ 8. Zabawa z blokami ................................................................................................................193
Bloki jako sposób programowania ............................................................................... 196
Porównanie metod, procedur i bloków .......................................................................... 200
Metody ................................................................................................................. 200
Procedury ............................................................................................................. 204
Bloki .................................................................................................................... 205
Przenoszenie siö miödzy blokami i procedurami ....................................................... 206
Du y eksperyment z zasiögiem .................................................................................... 207
Eksperyment 1. — na bloki wpäywa zmiana ich rodowiska ródäowego ..................... 208
Eksperyment 2. — bloki mogñ wpäynñè na rodowisko, z którego siö wywodzñ ........... 210
Wzorce blokowe i bloki w Rails .................................................................................... 212
Iteracja ................................................................................................................ 212
Programowanie aspektowe .................................................................................... 214
Tworzenie danych wyj ciowych w HTML-u i XML-u ..................................................... 218
Funkcje o podwójnym zastosowaniu ........................................................................ 220
Wywoäania zwrotne ................................................................................................ 220
Podsumowanie .......................................................................................................... 222
RozdziaÄ 9. Mieszanie i Äatanie klas ......................................................................................................223
Doäñczenia ................................................................................................................. 225
Organizacja kodu w formie moduäów ....................................................................... 225
Metody w moduäach .............................................................................................. 227
Doäñczanie moduäów do klas .................................................................................. 228
Doäñczenia w Rails ................................................................................................ 232
Maäpie äatanie ............................................................................................................ 236
Metoda eval — tyle drzwi do interpretera ................................................................ 237
Rodzeþstwo metody eval ....................................................................................... 239
Dobra technika tworzenia äat .................................................................................. 245
Podsumowanie .......................................................................................................... 249
RozdziaÄ 10. Kod, który pisze kod (który pisze kod) ............................................................................251
Jeszcze raz o dynamicznym kodzie i DSL ...................................................................... 253
Makra piszñce kod ..................................................................................................... 254
Tworzenie metod w locie za pomocñ define_method ................................................ 254
Przykäad u ycia define_method — Pentagon i Kreml ................................................. 255
Zasiög i define_method ......................................................................................... 257
Zastosowanie define_method w makrach Rails ........................................................ 258
Podsumowanie makr ............................................................................................. 260
Wywoäywanie nieistniejñcych metod — obiekty dostosowujñce siö
do sposobów korzystania z nich ................................................................................ 261
Kilka prostych przykäadów ...................................................................................... 262
Przykäad — skrót dla Array.each ............................................................................. 263
Uwa aj na wyäapywanie wszystkiego ....................................................................... 266
Wzorce metody method_missing ............................................................................ 267
Implementacja wzorców method_missing ................................................................ 268
Obiekty sterowane danymi — tworzenie täumacza komputerowego ............................ 272
Introspekcja ............................................................................................................... 274
Zmienne i staäe ..................................................................................................... 275
Metody ................................................................................................................. 276
Moduäy ................................................................................................................. 277
Podsumowanie .......................................................................................................... 278
Plik z chomika:
dd.nauka
Inne pliki z tego folderu:
Ruby Przewodnik programisty Wydanie II.pdf
(3437 KB)
Rails Projektowanie systemow klasy enterprise.pdf
(454 KB)
Ajax on Rails.pdf
(329 KB)
Rails Sztuka programowania.pdf
(343 KB)
Ruby on Rails Wprowadzenie.pdf
(334 KB)
Inne foldery tego chomika:
3ds max
50 zadań i zagadek szachowych
Access
Acrobat
Administracja
Zgłoś jeśli
naruszono regulamin