rails. projektowanie systemów klasy enterprise full.pdf

(12975 KB) Pobierz
888071986.001.png
Refaktoring
54
Wyodrbnianie moduów fizycznych
54
Uwalnianie metod uytkowych
55
4.
Baza danych jak forteca .............................................................................................. 57
Baza danych jako cz aplikacji
58
„Jedno rodowisko wyznacza reguy”
58
„Nasi programici nie popeniaj bdów”
58
„Baza danych moja i tylko moja”
59
Siadajc na ramionach gigantów
59
Wybór waciwego systemu bazy danych
59
À
propos migracji
60
Obalajc mity…
62
Raporty, raporty…
63
5.
Budowanie solidnego modelu danych ........................................................................ 67
Bilety do kina
67
Na pocztek bardzo prosto
68
Ograniczenia
70
Obalamy mity
78
Integralno referencyjna
78
Wprowadzenie do indeksowania
85
6.
Refaktoryzacja bazy do trzeciej postaci normalnej ................................................... 87
Trzecia posta normalna
87
Zacznij od normalizacji
91
Dziedziczenie tabel i domieszki
92
wiczenia
95
Refaktoryzacja
96
7.
Dane dziedzinowe ....................................................................................................... 97
Kody pocztowe i geograficzne dane dziedzinowe
99
Wzorzec projektowy — strategia dla tabel dziedzinowych
101
Refaktoryzacja od samego pocztku
104
8.
Klucze zoone i posta normalna DKNF .................................................................. 107
Klucze naturalne — korzyci i kopoty
108
Wybór kluczy naturalnych
111
Siedzc ju na ramionach giganta…
112
Migracja do postaci normalnej DKNF
113
Klucze wielokolumnowe i ich implementacja w Rails
116
Odroczona kontrola integralnoci referencyjnej
120
Co za co…
122
4
Spis treci
wiczenia
123
Refaktoryzacja
124
Klucz jednokolumnowy
124
Klucz wielokolumnowy
125
9.
Wyzwalacze jako narzdzia kontroli skomplikowanych zalenoci
wewntrz danych .......................................................................................................127
Kontrola ogranicze za pomoc wyzwalaczy
127
Anatomia funkcji w jzyku PL/pgSQL
130
To tylko acuchy…
131
Zmienne lokalne i przypisywanie im wartoci
131
Bloki
132
Dodatkowe cechy wyzwalacza
132
Wyzwalacz — agodna zapora lub bezpiecznik
132
Instrukcje warunkowe
133
10.
Dziedziczenie wielotabelaryczne ............................................................................. 135
O co chodzi?
135
Polimorfizm — co to jest?
137
Dziedziczenie a dane fizyczne
138
Dziedziczenie jednotabelaryczne
140
Dziedziczenie wielotabelaryczne
140
Alternatywa wyczajca dla zbioru kolumn
143
Implementacja MTI w Rails
145
Klasy-fabryki
151
wiczenia
152
Refaktoryzacja
152
Z STI do MTI
152
Z :polymorphic => true do MTI
153
11.
Modele widokowe ..................................................................................................... 155
Widoki
156
Definiowanie widoku
156
Definiowanie klasy modelowej na bazie widoku
157
Specyfika widoków
158
Dodawanie, modyfikowanie i usuwanie rekordów
159
Ograniczenia i klucze obce
159
Indeksowanie
160
wiczenia
161
Refaktoryzacja
161
Spis treci
5
12.
Widoki zmaterializowane ......................................................................................... 163
Reguy rzdzce widokami zmaterializowanymi
164
Widok ródowy
165
Formatowanie widoku
166
Tabela docelowa
168
Funkcje odwieajce i uniewaniajce
169
Zarzdzanie zalenociami czasowymi
171
Kto za to paci?
172
Odwieanie i uniewanianie sterowane wyzwalaczami
175
Tabela movie_showtimes
176
Tabela movies
178
Tabela theatres
178
Tabela orders
179
Tabela purchased_tickets
180
Ukrycie implementacji dziki widokowi uzgadniajcemu
181
Periodyczne odwieanie
183
Indeksowanie widoku zmaterializowanego
184
To si naprawd opaca…
185
Kaskadowe cache’owanie widoków
186
wiczenia
187
13.
SOA — zaczynamy .................................................................................................... 189
Czym jest SOA?
189
Dlaczego SOA?
192
Wspódzielenie zasobów
193
Redukcja obcienia baz danych
196
Skalowalno i cache’owanie
202
Lokalna redukcja zoonoci
202
Podsumowanie
205
wiczenia
205
14.
Specyfika SOA ............................................................................................................ 207
Specyfika usug
207
Ukryta implementacja
207
Przystpne API
210
Projektowanie API
211
Nie rozdrabniaj si
211
Ogranicz kontakty
213
Korzystaj ze wspóbienoci
214
Tylko to — i nic wicej
215
6
Spis treci
REST, XML-RPC i SOAP
217
XML-RPC
217
SOAP
219
15.
Usugi typu XML-RPC ................................................................................................ 221
ActionWebService w Rails 2.0
221
Definiowanie bariery abstrakcji
222
ActiveRecord jako warstwa modelu fizycznego
222
Warstwa modelu logicznego
224
Definiowanie API
229
Wicej testów…
233
Wtyczka kliencka
235
Wspódzielony kod
236
Kliencka klasa-singleton
237
Testy integracyjne
238
16.
Przechodzimy na SOA ............................................................................................... 241
Usuga zamówie — OrdersService
242
Integracja z usug MoviesService
252
Konsekwencje…
254
Model obiektowy usugi MoviesService
256
Podsumowanie
265
17.
Usugi typu REST ........................................................................................................ 267
Podstawy REST
267
Zasoby i polecenia
267
Sprzt jest czci aplikacji
269
REST a SOA
270
REST a CRUD
270
Uniwersalny interfejs
271
HTTP+POX
273
Definiowanie kontraktu usugi
274
Klient REST w Rails
276
REST czy XML-RPC?
276
18.
Usugi webowe typu RESTful .................................................................................... 279
Sformuowanie zadania
279
Narzdzia
281
ROXML
281
Net::HTTP
283
Spis treci
7
Zgłoś jeśli naruszono regulamin