tylko-tutaj-rails-zaawansowane-programowanie_railzp.pdf
(
12517 KB
)
Pobierz
656458083 UNPDF
Rails. Zaawansowane
programowanie
Autor: Brad Ediger
T³umaczenie: Pawe³ Gonera
ISBN: 978-83-246-1724-1
Tytu³ orygina³u:
Advanced Rails
Format: 168x237 , stron: 336
Twórz zaawansowane projekty w Rails!
•
Jak zadbaæ o bezpieczeñstwo?
•
Jak zapewniæ wydajnoœæ Twojej aplikacji?
•
Jak stworzyæ i utrzymaæ du¿y projekt w Rails?
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 autora tego
projektu, Davida Heinemeiera Hanssona, to szybkoœæ, ³atwoœæ i przyjemnoœæ tworzenia
kodu. Ruby on Rails jest dojrza³ym rozwi¹zaniem, wykorzystywanym przez wiele firm
w aplikacjach internetowych, tworzonych pod k¹tem ich specyficznych potrzeb. Liczba
aplikacji, które powsta³y z wykorzystaniem tego szkieletu, œwiadczy o jego wysokiej
jakoœci oraz niew¹tpliwie ma wp³yw na wzrost popularnoœci samego jêzyka Ruby.
„
Rails. Zaawansowane programowanie
”
porusza te tematy, które Wy, programiœci,
lubicie najbardziej! Dziêki tej ksi¹¿ce dowiesz siê, w jaki sposób wykorzystaæ gotowe
wtyczki oraz jak stworzyæ nowe. Nauczysz siê stosowaæ zaawansowane funkcje bazy
danych oraz pod³¹czaæ siê jednoczeœnie do wielu baz. Po lekturze tego podrêcznika
bez problemu zapewnisz swojej aplikacji najwy¿szy poziom bezpieczeñstwa, optymaln¹
wydajnoœæ i skalowalnoœæ. Autor wskazuje tutaj równie¿ niezwykle interesuj¹ce
kwestie, dotycz¹ce projektowania du¿ych aplikacji, wykorzystania systemów kontroli
wersji oraz utrzymywania w³aœciwej struktury projektu.
•
Przypomnienie i omówienie podstawowych elementów Ruby i Rails
•
Stosowanie ActiveSupport oraz RailTies
•
Zastosowanie i projektowanie wtyczek
•
Zaawansowane wykorzystanie baz danych
•
Uwierzytelnianie za pomoc¹ LDAP
•
Bezpieczne szyfrowanie hase³
•
Bezpieczne przetwarzanie formularzy i danych u¿ytkownika
•
Zapewnienie wydajnoœci
•
Skalowanie architektury
•
Wykorzystywanie us³ug Web
•
Tworzenie wielojêzycznych aplikacji
•
Zarz¹dzanie du¿ymi projektami
•
U¿ywanie systemów kontroli wersji
Poznaj wszystkie funkcje Ruby on Rails!
Spis treci
Wstp ........................................................................................................................................ 5
1. Techniki podstawowe ................................................................................................... 9
Czym jest metaprogramowanie?
9
Podstawy Ruby
12
Techniki metaprogramowania
30
Programowanie funkcyjne
41
Przykady
46
Propozycje dalszych lektur
49
2. ActiveSupport oraz RailTies ........................................................................................ 51
Ruby, jakiego nie znamy
51
Jak czyta kod?
54
ActiveSupport
61
Core Extensions
65
RailTies
79
Propozycje dalszych lektur
81
3. Wtyczki Rails ................................................................................................................83
Wtyczki
83
Tworzenie wtyczek
87
Przykad wtyczki
89
Testowanie wtyczek
94
Propozycje dalszych lektur
97
4. Bazy danych .................................................................................................................99
Systemy zarzdzania baz danych
99
Due obiekty (binarne)
104
Zaawansowane funkcje baz danych
112
Podczanie do wielu baz danych
118
Buforowanie
120
Wyrównywanie obcienia i wysoka dostpno
121
LDAP
126
Propozycje dalszych lektur
127
3
5. Bezpieczestwo ......................................................................................................... 129
Problemy w aplikacji
129
Problemy w sieci WWW
138
Wstrzykiwanie SQL
145
rodowisko Ruby
146
Propozycje dalszych lektur
147
6. Wydajno .................................................................................................................. 149
Narzdzia pomiarowe
150
Przykad optymalizacji Rails
156
Wydajno ActiveRecord
165
Skalowanie architektury
174
Inne systemy
181
Propozycje dalszych lektur
183
7. REST, zasoby oraz usugi Web .................................................................................. 185
Czym jest REST?
185
Zalety architektury REST
203
REST w Rails
207
Analiza przypadku — Amazon S3
226
Propozycje dalszych lektur
230
8. i18n oraz L10n ............................................................................................................ 231
Lokalizacje
231
Kodowanie znaków
232
Unicode
233
Rails i Unicode
235
Rails L10n
243
Propozycje dalszych lektur
262
9. Wykorzystanie i rozszerzanie Rails .......................................................................... 263
Wymiana komponentów Rails
263
Wykorzystanie komponentów Rails
274
Udzia w tworzeniu Rails
279
Propozycje dalszych lektur
285
10. Due projekty ............................................................................................................. 287
Kontrola wersji
287
ledzenie bdów
298
Struktura projektu
299
Instalacja Rails
305
Propozycje dalszych lektur
311
Skorowidz ............................................................................................................................. 313
4
Spis treci
ROZDZIA 1.
Techniki podstawowe
Do osignicia niezawodnoci jest wymagana prostota.
Edsger W. Dijkstra
Od pierwszego wydania w lipcu 2004 roku rodowisko Ruby on Rails stale zdobywa popu-
larno. Rails przyciga programistów PHP, Java i .NET swoj prostot — architektur
model-widok-kontroler (MVC), rozsdnymi wartociami domylnymi („konwencja nad kon-
figuracj”) oraz zaawansowanym jzykiem programowania Ruby.
rodowisko Rails miao przez pierwszy rok lub dwa sab reputacj z uwagi na braki w do-
kumentacji. Luka ta zostaa wypeniona przez tysice programistów, którzy korzystali ze
rodowiska Ruby on Rails, wspótworzyli je i pisali na jego temat, jak równie dziki pro-
jektowi Rails Documentation (
http://railsdocumentation.org
). Dostpne s tysice blogów, które
zawieraj samouczki oraz porady na temat programowania w Rails.
Celem tej ksiki jest zebranie najlepszych praktyk oraz wiedzy zgromadzonej przez rodo-
wisko programistów Rails i zaprezentowanie ich w atwej do przyswojenia, zwartej formie.
Poszukiwaem ponadto tych aspektów programowania dla WWW, które s czsto niedoce-
niane lub pomijane przez rodowisko Rails.
Czym jest metaprogramowanie?
Rails udostpnia metaprogramowanie dla mas. Cho nie byo to pierwsze zastosowanie za-
awansowanych funkcji Ruby, to jednak jest ono chyba najbardziej popularne. Aby zrozumie
dziaanie Rails, konieczne jest wczeniejsze zapoznanie si z tymi mechanizmami Ruby, które
zostay wykorzystane w tym rodowisku. W tym rozdziale przedstawione zostan podsta-
wowe mechanizmy zapewniajce dziaanie technik przedstawianych w pozostaych rozdzia-
ach ksiki.
Metaprogramowanie
to technika programowania, w której kod jest wykorzystywany do
tworzenia innego kodu, bd dokonania introspekcji samego siebie. Przedrostek
meta
(z gre-
ki) wskazuje na abstrakcj; kod wykorzystujcy techniki metaprogramowania dziaa jedno-
czenie na dwóch poziomach abstrakcji.
Metaprogramowanie jest wykorzystywane w wielu jzykach, ale jest najbardziej popularne
w jzykach dynamicznych, poniewa maj one zwykle wicej funkcji pozwalajcych na ma-
nipulowanie kodem jako danymi. Pomimo tego, e w jzykach statycznych, takich jak C# lub
9
Java, dostpny jest mechanizm refleksji, to nie jest on nawet w czci tak przezroczysty, jak
w jzykach dynamicznych, takich jak Ruby, poniewa kod i dane znajduj si w czasie dzia-
ania aplikacji na dwóch osobnych warstwach.
Introspekcja jest zwykle wykonywana na jednym z tych poziomów.
Introspekcja syntak-
tyczna
jest najniszym poziomem introspekcji — pozwala na bezporedni analiz tekstu
programu lub strumienia tokenów. Metaprogramowanie bazujce na szablonach lub ma-
krach zwykle dziaa na poziomie syntaktycznym.
Ten typ metaprogramowania jest wykorzystany w jzyku Lisp poprzez stosowanie
S-wyrae
(bezporedniego tumaczenia drzewa abstrakcji skadni programu) zarówno w przypadku kodu,
jak i danych. Metaprogramowanie w jzyku Lisp wymaga intensywnego korzystania z
makr
,
które s tak naprawd szablonami kodu. Daje to moliwo pracy na jednym poziomie; kod
i dane s reprezentowane w ten sam sposób, a jedynym, co odrónia kod od danych, jest to,
e jest on wartociowany. Jednak metaprogramowanie na poziomie syntaktycznym ma swoje
wady. Przechwytywanie zmiennych oraz przypadkowe wielokrotne wartociowanie jest bez-
poredni konsekwencj umieszczenia kodu na dwóch poziomach abstrakcji dla tej samej prze-
strzeni nazw. Cho dostpne s standardowe idiomy jzyka Lisp pozwalajce na uporanie si
z tymi problemami, to jednak s one kolejnymi elementami, których programista Lisp musi
si nauczy i pamita o nich.
Introspekcja syntaktyczna w Ruby jest dostpna za porednictwem biblioteki
ParseTree
, która
pozwala na tumaczenie kodu ródowego Ruby na S-wyraenia
1
. Interesujcym zastosowa-
niem tej biblioteki jest Heckle
2
, biblioteka uatwiajca testowanie, która analizuje kod ródowy
Ruby i zmienia go poprzez modyfikowanie cigów oraz zmian wartoci
true
na
false
i odwrotnie. W zaoeniach, jeeli nasz kod jest odpowiednio pokryty testami, kada mody-
fikacja kodu powinna zosta wykryta przez testy jednostkowe.
Alternatyw dla introspekcji syntaktycznej jest dziaajca na wyszym poziomie
introspekcja
semantyczna
, czyli analiza programu z wykorzystaniem struktur danych wyszego pozio-
mu. Sposób realizacji tej techniki róni si w ronych jzykach programowania, ale w Ruby
zwykle oznacza to operowanie na poziomie klas i metod — tworzenie, modyfikowanie i alia-
sowanie metod; przechwytywanie wywoa metod; manipulowanie acuchem dziedzicze-
nia. Techniki te s zwykle bardziej zwizane z istniejcym kodem ni metody syntaktyczne,
poniewa najczciej istniejce metody s traktowane jako czarne skrzynki i ich implementa-
cja nie jest swobodnie zmieniana.
Nie powtarzaj si
Na wysokim poziomie metaprogramowanie jest przydatne do wprowadzania
zasady DRY
(ang.
Don’t Repeat Yourself
— „nie powtarzaj si”). Zgodnie z t technik, nazywan równie
„Raz i tylko raz”, kady element informacji musi by zdefiniowany w systemie tylko raz.
Powielanie jest zwykle niepotrzebne, szczególnie w jzykach dynamicznych, takich jak Ruby.
Podobnie jak abstrakcja funkcjonalna pozwala nam na uniknicie powielania kodu, który jest
taki sam lub niemal taki sam, metaprogramowanie pozwala nam unikn podobnych kon-
cepcji, wykorzystywanych w aplikacji.
1
http://www.zenspider.com/ZSS/Products/ParseTree
.
2
http://rubyforge.org/projects/seattlerb
.
10
Rozdzia 1. Techniki podstawowe
Plik z chomika:
s_zbyszek
Inne pliki z tego folderu:
oryginal-net-framework-20-zaawansowane-programowanie_netfra.pdf
(18884 KB)
oryginal-opengl-cwiczenia_cwopgl.pdf
(5864 KB)
oryginal-programowanie-koncepcje-techniki-i-modele_progko.pdf
(19675 KB)
oryginal-programowanie-od-podstaw_progpo.pdf
(15296 KB)
oryginal-programowanie-w-ruby-od-podstaw_prubpo.pdf
(10068 KB)
Inne foldery tego chomika:
- ◢◤ - FILMY NAPISY PL h-123456
- ◢◤ - FILMY DUBBING PL h-123456
- ◢◤- FILMY AVI - 123456
- ◢◤- FILMY RMVB - 123456
- ◢◤- FILMY HD - 123456
Zgłoś jeśli
naruszono regulamin