O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Rails. Projektowanie systemów klasy enterprise

Book Description

Rynek szkieletów aplikacji internetowych jest niezwykle urozmaicony. W?ród wielu dostępnych opcji można znale?ć tu rozwišzania przeznaczone dla projektów o różnej skali złożono?

Table of Contents

  1. Rails. Projektowanie systemów klasy enterprise
  2. Wstęp
    1. Historia Twittera
    2. Szybkość a skalowalność
    3. Czego można oczekiwać od tej książki?
      1. Zagadnienia
      2. Układ książki
      3. Do kogo adresujemy tę książkę?
    4. Konwencje typograficzne
    5. Korzystanie z przykładowego kodu
    6. Podziękowania
  3. 1. Widok z góry
    1. Co to znaczy „enterprise?”
    2. Powolny wzrost
    3. Komponenty aplikacji
      1. Warstwa danych
      2. Warstwa aplikacyjna
        1. Interfejs czołowy i usługi
        2. Warstwa usług webowych
      3. Warstwa cache’owania
      4. System komunikacyjny
      5. Serwer WWW
      6. Zapora sieciowa
  4. 2. Wtyczki jako środek organizacji kodu
    1. Korzyści
    2. Tworzenie własnej wtyczki
      1. Rozszerzanie klas wbudowanych
        1. Inicjacja
        2. Szablon
        3. Testowanie
        4. Wykorzystywanie wtyczki rozszerzającej
      2. Rozszerzenia uniwersalne
        1. Inicjacja
        2. Szablon
        3. Wykorzystywanie rozszerzeń uniwersalnych
        4. Testowanie
    3. Wdrażanie
      1. svn:externals
  5. 3. Organizacja kodu za pomocą modułów
    1. Pliki i katalogi
    2. Granice modułu wyznaczają przestrzeń nazw
      1. Międzymodułowe skojarzenia klas modelowych
      2. Relacje wzajemne
      3. Modularyzacja jako wstęp do architektury usługowej
      4. Wymuszenie prawidłowej kolejności ładowania definicji klas
    3. Ćwiczenia
    4. Refaktoring
      1. Wyodrębnianie modułów fizycznych
      2. Uwalnianie metod użytkowych
  6. 4. Baza danych jak forteca
    1. Baza danych jako część aplikacji
      1. „Jedno środowisko wyznacza reguły”
      2. „Nasi programiści nie popełniają błędów”
      3. „Baza danych moja i tylko moja”
    2. Siadając na ramionach gigantów
      1. Wybór właściwego systemu bazy danych
      2. À propos migracji
      3. Obalając mity...
    3. Raporty, raporty...
  7. 5. Budowanie solidnego modelu danych
    1. Bilety do kina
      1. Na początek bardzo prosto
      2. Ograniczenia
      3. Obalamy mity
      4. Integralność referencyjna
      5. Wprowadzenie do indeksowania
  8. 6. Refaktoryzacja bazy do trzeciej postaci normalnej
    1. Trzecia postać normalna
      1. Zacznij od normalizacji
    2. Dziedziczenie tabel i domieszki
    3. Ćwiczenia
    4. Refaktoryzacja
  9. 7. Dane dziedzinowe
    1. Kody pocztowe i geograficzne dane dziedzinowe
    2. Wzorzec projektowy — strategia dla tabel dziedzinowych
    3. Refaktoryzacja od samego początku
  10. 8. Klucze złożone i postać normalna DKNF
    1. Klucze naturalne — korzyści i kłopoty
      1. Wybór kluczy naturalnych
    2. Siedząc już na ramionach giganta...
      1. Migracja do postaci normalnej DKNF
        1. Klucze jednokolumnowe
      2. Klucze wielokolumnowe i ich implementacja w Rails
        1. Obsługa kluczy złożonych za pomocą dedykowanej wtyczki
        2. Model hybrydowy „id-DKNF”
        3. Uproszczenie dzięki nowej metodzie create!
      3. Odroczona kontrola integralności referencyjnej
      4. Coś za coś...
        1. Efektywny użytek z indeksów
        2. Komplikacja kodu aplikacji
    3. Ćwiczenia
    4. Refaktoryzacja
      1. Klucz jednokolumnowy
      2. Klucz wielokolumnowy
  11. 9. Wyzwalacze jako narzędzia kontroli skomplikowanych zależności wewnątrz danych
    1. Kontrola ograniczeń za pomocą wyzwalaczy
    2. Anatomia funkcji w języku PL/pgSQL
      1. To tylko łańcuchy...
      2. Zmienne lokalne i przypisywanie im wartości
      3. Bloki
      4. Dodatkowe cechy wyzwalacza
      5. Wyzwalacz — łagodna zapora lub bezpiecznik
      6. Instrukcje warunkowe
  12. 10. Dziedziczenie wielotabelaryczne
    1. O co chodzi?
    2. Polimorfizm — co to jest?
    3. Dziedziczenie a dane fizyczne
      1. Dziedziczenie jednotabelaryczne
      2. Dziedziczenie wielotabelaryczne
      3. Alternatywa wyłączająca dla zbioru kolumn
      4. Implementacja MTI w Rails
    4. Klasy-fabryki
    5. Ćwiczenia
    6. Refaktoryzacja
      1. Z STI do MTI
      2. Z :polymorphic => true do MTI
  13. 11. Modele widokowe
    1. Widoki
      1. Definiowanie widoku
    2. Definiowanie klasy modelowej na bazie widoku
    3. Specyfika widoków
      1. Dodawanie, modyfikowanie i usuwanie rekordów
      2. Ograniczenia i klucze obce
      3. Indeksowanie
    4. Ćwiczenia
    5. Refaktoryzacja
  14. 12. Widoki zmaterializowane
    1. Reguły rządzące widokami zmaterializowanymi
    2. Widok źródłowy
      1. Formatowanie widoku
    3. Tabela docelowa
    4. Funkcje odświeżające i unieważniające
      1. Zarządzanie zależnościami czasowymi
      2. Kto za to płaci?
        1. Aktualizacja „jeden do jednego”
        2. Aktualizacja „jeden do wielu”
        3. Aktualizacja „wiele do jednego”
    5. Odświeżanie i unieważnianie sterowane wyzwalaczami
      1. Tabela movie_showtimes
      2. Tabela movies
      3. Tabela theatres
      4. Tabela orders
      5. Tabela purchased_tickets
    6. Ukrycie implementacji dzięki widokowi uzgadniającemu
      1. Periodyczne odświeżanie
        1. I koło się zamyka...
    7. Indeksowanie widoku zmaterializowanego
    8. To się naprawdę opłaca...
    9. Kaskadowe cache’owanie widoków
    10. Ćwiczenia
  15. 13. SOA — zaczynamy
    1. Czym jest SOA?
    2. Dlaczego SOA?
      1. Współdzielenie zasobów
        1. Synchronizowane tabele uwierzytelniające
        2. Współdzielenie danych uwierzytelniających
        3. Architektura zorientowana na usługi
      2. Redukcja obciążenia baz danych
        1. Dziel i...
        2. Replikacja danych — obalamy mit
      3. Skalowalność i cache’owanie
      4. Lokalna redukcja złożoności
    3. Podsumowanie
    4. Ćwiczenia
  16. 14. Specyfika SOA
    1. Specyfika usług
      1. Ukryta implementacja
      2. Przystępne API
    2. Projektowanie API
      1. Nie rozdrabniaj się
      2. Ogranicz kontakty
      3. Korzystaj ze współbieżności
      4. Tylko to — i nic więcej
    3. REST, XML-RPC i SOAP
      1. XML-RPC
      2. SOAP
  17. 15. Usługi typu XML-RPC
    1. ActionWebService w Rails 2.0
    2. Definiowanie bariery abstrakcji
      1. ActiveRecord jako warstwa modelu fizycznego
      2. Warstwa modelu logicznego
      3. Definiowanie API
    3. Więcej testów...
    4. Wtyczka kliencka
      1. Współdzielony kod
      2. Kliencka klasa-singleton
      3. Testy integracyjne
  18. 16. Przechodzimy na SOA
    1. Usługa zamówień — OrdersService
    2. Integracja z usługą MoviesService
      1. Konsekwencje...
    3. Model obiektowy usługi MoviesService
    4. Podsumowanie
  19. 17. Usługi typu REST
    1. Podstawy REST
      1. Zasoby i polecenia
      2. Sprzęt jest częścią aplikacji
    2. REST a SOA
      1. REST a CRUD
      2. Uniwersalny interfejs
      3. HTTP+POX
      4. Definiowanie kontraktu usługi
      5. Klient REST w Rails
      6. REST czy XML-RPC?
  20. 18. Usługi webowe typu RESTful
    1. Sformułowanie zadania
    2. Narzędzia
      1. ROXML
      2. Net::HTTP
    3. Usługa MoviesWebService
      1. Implementacja zasobów serwera
      2. Implementacja akcji serwera
      3. Implementacja klienta
        1. wadl.rb
        2. REST Describe
  21. 19. Cache’owanie
    1. Dla przypomnienia — cache’owanie w warstwie fizycznej
      1. Migawki
      2. Funkcja odświeżająca
      3. Wyzwalacze unieważniające
      4. Indeksowanie
    2. Cache’owanie modeli logicznych
      1. Uwarunkowania
      2. Pułapka nieaktualnych danych
      3. Indeksowanie cache
    3. Inne aspekty cache’owania
      1. Cache’owanie planu realizacji
      2. Cache’owanie żądań
      3. Cache’owanie w Rails
      4. Cache’owanie fragmentów, akcji i stron
  22. A. Autor
  23. B. Kolofon
  24. Indeks
  25. Copyright