Facebook - konwersja
  • promocja

Systemy reaktywne. Wzorce projektowe i ich stosowanie - ebook

Wydawnictwo:
Tłumacz:
Data wydania:
12 lutego 2018
Format ebooka:
EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, PDF
Format PDF
czytaj
na laptopie
czytaj
na tablecie
Format e-booków, który możesz odczytywać na tablecie oraz laptopie. Pliki PDF są odczytywane również przez czytniki i smartfony, jednakze względu na komfort czytania i brak możliwości skalowania czcionki, czytanie plików PDF na tych urządzeniach może być męczące dla oczu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(3w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na laptopie
Pliki PDF zabezpieczone watermarkiem możesz odczytać na dowolnym laptopie po zainstalowaniu czytnika dokumentów PDF. Najpowszechniejszym programem, który umożliwi odczytanie pliku PDF na laptopie, jest Adobe Reader. W zależności od potrzeb, możesz zainstalować również inny program - e-booki PDF pod względem sposobu odczytywania nie różnią niczym od powszechnie stosowanych dokumentów PDF, które odczytujemy każdego dnia.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.

Systemy reaktywne. Wzorce projektowe i ich stosowanie - ebook

Systemy reaktywne. Wzorce projektowe i ich stosowanie

Uznane duże aplikacje internetowe, takie jak portale społecznościowe, systemy bankowe czy handlowe, działają szybko i niezawodnie. Muszą radzić sobie nawet wtedy, gdy ich niektóre części ulegną awarii. Nie mogą zawieść, gdy będzie z nich korzystać większa liczba użytkowników niż zwykle. Naturalnie, muszą być odporne na różne zagrożenia, a oprócz tego skalowalne i łatwe w rozbudowie. Tym i wielu innym wymaganiom odpowiadają systemy responsywne — które bez względu na okoliczności sprawnie przetwarzają dane wprowadzane przez użytkowników. Pomyślne wdrożenie systemu reaktywnego wymaga jednak nieco innego spojrzenia na tworzenie oprogramowania.

Jakie cechy wyrózniają system reaktywny? O tym mówi tzw. Manifest reaktywny i jego podstawowe 4 postulaty:

  • responsywność - system musi reagować na interakcje użytkowników,
  • niezawodność - system musi reagować na awarie i być dostępny non stop,
  • elastyczność - system musi reagować na zmieniające się obciążenie,
  • sterowanie za pomocą komunikatów - system musi reagować na wprowadzane dane.

Niniejsza książka jest wyczerpującym wprowadzeniem do implementacji systemów reaktywnych. Opisano tu filozofię programowania reaktywnego, zasady projektowania aplikacji, wzorce projektowe i ich zastosowanie. Szczegółowo wyjaśniono, jakie problemy można rozwiązywać w ten sposób, a podane przykłady opatrzono pełnymi kodami źródłowymi. Bazując na postulatach Manifestu reaktywnego, przedstawiono metodykę budowy architektury modułowej, zasady tworzenia komunikatów, które sterują tą architekturą, opisano też potrzebne narzędzia i sposób ich wykorzystania. Nie zabrakło informacji o dobrych praktykach programowania i testowaniu aplikacji.

Na pewno do lektury przyda Ci się znajomość podstawowych zagadnień programistycznych i pewne doświadczenie w pracy z systemami rozproszonymi.

Najważniejsze zagadnienia w książce:

  • manifest reaktywny i jego postulaty
  • hierarchia modułów i przepływy danych
  • programowanie funkcyjne i reaktywne
  • obsługa awarii
  • wzorce projektowe i ich stosowanie

Systemy reaktywne — odpowiedź na wyzwania naszych czasów!


Dr Roland Kuhn jest ekspertem w dziedzinie rozproszonych systemów obliczeniowych. Obronił doktorat w instytucie CERN w Szwajcarii. Później pracował dla Niemieckiej Agencji Kosmicznej. Obecnie tworzy systemy reaktywne.

Brian Hanafee jest głównym architektem systemów w Wells Fargo Bank. Wcześniej tworzył nowe produkty dla Oracle i pisał oprogramowanie do systemów wizyjnych montowanych w hełmach pilotów samolotów wojskowych.

Jamie Allen jest programistą i architektem oprogramowania. Pracuje jako dyrektor techniczny projektu platformy handlowej UCP w Starbucks. Od 2008 r. tworzy w języku Scala reaktywne aplikacje dla klientów na całym świecie.

Spis treści

Przedmowa (13)

Wstęp (15)

Podziękowania (17)

O książce (19)

O autorach (21)

CZĘŚĆ I. WPROWADZENIE (23)

Rozdział 1. System reaktywny? (25)

  • 1.1. Anatomia systemu reaktywnego (26)
  • 1.2. Problem obciążenia (28)
  • 1.3. Problem awarii (29)
  • 1.4. Tworzenie responsywnego systemu (30)
  • 1.5. Zapobieganie efektowi kuli błota (32)
  • 1.6. Integrowanie komponentów niereaktywnych (33)
  • 1.7. Podsumowanie (34)

Rozdział 2. Przegląd Manifestu reaktywnego (35)

  • 2.1. Reagowanie systemu na interakcje użytkowników (35)
    • 2.1.1. Podejście tradycyjne (36)
    • 2.1.2. Analiza czasu odpowiedzi współdzielonego zasobu (38)
    • 2.1.3. Ograniczanie maksymalnego czasu odpowiedzi za pomocą kolejki (39)
  • 2.2. Analiza paralelizmu (41)
    • 2.2.1. Skrócenie czasu odpowiedzi z wykorzystaniem paralelizmu (41)
    • 2.2.2. Usprawnianie paralelizmu za pomocą komponowanych futur (43)
    • 2.2.3. Cena szeregowej iluzji (44)
  • 2.3. Ograniczenia paralelizmu (46)
    • 2.3.1. Prawo Amdahla (46)
    • 2.3.2. Uniwersalne prawo skalowalności (47)
  • 2.4. Obsługa awarii (48)
    • 2.4.1. Rozczłonkowywanie i grodzenie (50)
    • 2.4.2. Bezpieczniki (51)
    • 2.4.3. Nadzorowanie usług (53)
  • 2.5. Utrata wysokiej spójności danych (54)
    • 2.5.1. ACID 2.0 (56)
    • 2.5.2. Odbieranie zmian (57)
  • 2.6. Wzorce projektowania reaktywnego (58)
    • 2.6.1. Zarządzanie złożonością oprogramowania (59)
    • 2.6.2. Przystosowanie modeli programistycznych do rzeczywistości (60)
  • 2.7. Podsumowanie (61)

Rozdział 3. Narzędzia (63)

  • 3.1. Pierwsze rozwiązania reaktywne (63)
  • 3.2. Programowanie funkcyjne (65)
    • 3.2.1. Niezmienność (66)
    • 3.2.2. Przejrzystość referencyjna (68)
    • 3.2.3. Efekty uboczne (69)
    • 3.2.4. Funkcje pierwszej klasy (70)
  • 3.3. Responsywność dla użytkowników (70)
    • 3.3.1. Ustalanie priorytetów cech wydajnościowych (71)
  • 3.4. Dostępne narzędzia reaktywne (72)
    • 3.4.1. Zielone wątki (72)
    • 3.4.2. Pętle zdarzeń (73)
    • 3.4.3. Język CSP (74)
    • 3.4.4. Futury i promesy (76)
    • 3.4.5. Rozszerzenia reaktywne (80)
    • 3.4.6. Model Aktor (82)
  • 3.5. Podsumowanie (86)

CZĘŚĆ II. FILOZOFIA REAKTYWNOŚCI W PIGUŁCE (87)

Rozdział 4. Przesyłanie komunikatów (89)

  • 4.1. Komunikaty (89)
  • 4.2. Pionowa skalowalność aplikacji (90)
  • 4.3. Sterowanie zdarzeniami i komunikatami (91)
  • 4.4. Synchroniczne i asynchroniczne przesyłanie komunikatów (93)
  • 4.5. Sterowanie przepływem danych (95)
  • 4.6. Gwarancja dostarczania komunikatów (97)
  • 4.7. Zdarzenia jako komunikaty (100)
  • 4.8. Synchroniczne przesyłanie komunikatów (101)
  • 4.9. Podsumowanie (102)

Rozdział 5. Przezroczystość lokalizacji (103)

  • 5.1. Czym jest przezroczystość lokalizacji? (103)
  • 5.2. Błędne wyobrażenia o przezroczystości wywołań (104)
  • 5.3. Ratunek w jawnym przesyłaniu komunikatów (105)
  • 5.4. Optymalizacja lokalnego przekazywania komunikatów (107)
  • 5.5. Utraty komunikatów (107)
  • 5.6. Pozioma skalowalność aplikacji (109)
  • 5.7. Przezroczystość lokalizacji upraszcza testy (110)
  • 5.8. Dynamiczne komponowanie systemu (111)
  • 5.9. Podsumowanie (112)

Rozdział 6. Dziel i rządź (113)

  • 6.1. Hierarchiczna struktura problemu (114)
    • 6.1.1. Tworzenie hierarchii modułów (114)
  • 6.2. Zależności i moduły pochodne (115)
    • 6.2.1. Zapobieganie powstawaniu matryc (116)
  • 6.3. Budowanie własnej ogromnej korporacji (118)
  • 6.4. Zalety precyzyjnej specyfikacji i testów (119)
  • 6.5. Skalowalność pozioma i pionowa aplikacji (120)
  • 6.6. Podsumowanie (121)

Rozdział 7. Strukturalna obsługa awarii (123)

  • 7.1. Własność oznacza zobowiązanie (123)
  • 7.2. Własność określa kontrolę cyklu życia modułu (125)
  • 7.3. Odporność na awarie na wszystkich poziomach (127)
  • 7.4. Podsumowanie (127)

Rozdział 8. Rozdzielona spójność danych (129)

  • 8.1. Ratunek w niezależnych modułach (130)
  • 8.2. Grupowanie danych i transakcji (131)
  • 8.3. Modelowanie przepływów danych ponad granicami transakcyjnymi (131)
  • 8.4. Jednostka awaryjności = jednostka spójności (133)
  • 8.5. Segregacja odpowiedzialności (133)
  • 8.6. Utrzymywanie odizolowanych zakresów spójności (135)
  • 8.7. Podsumowanie (136)

Rozdział 9. Niedeterminizm na życzenie (137)

  • 9.1. Programowanie logiczne i deklaratywny przepływ danych (137)
  • 9.2. Reaktywne programowanie funkcyjne (139)
  • 9.3. Współdzielenie niczego upraszcza równoległość operacji (140)
  • 9.4. Współdzielenie stanu i równoległość (141)
  • 9.5. Co zatem powinniśmy robić? (141)
  • 9.6. Podsumowanie (143)

Rozdział 10. Przepływ danych (145)

  • 10.1. Wysyłanie danych (145)
  • 10.2. Modelowanie procesów w domenie (147)
  • 10.3. Określanie ograniczeń odporności na awarie (147)
  • 10.4. Szacowanie ilości komunikatów i skali wdrożenia (148)
  • 10.5. Planowanie sterowania przepływami (149)
  • 10.6. Podsumowanie (149)

CZĘŚĆ III. WZORCE (151)

Rozdział 11. Testy aplikacji reaktywnych (153)

  • 11.1. Jak testować aplikacje? (153)
    • 11.1.1. Testy jednostkowe (154)
    • 11.1.2. Testy komponentów (155)
    • 11.1.3. Testy łańcuchowe (155)
    • 11.1.4. Testy integracyjne (155)
    • 11.1.5. Testy akceptacyjne (156)
    • 11.1.6. Testy czarnej i białej skrzynki (156)
  • 11.2. Środowisko testowe (157)
  • 11.3. Testy asynchroniczne (158)
    • 11.3.1. Blokujące odbiorniki komunikatów (159)
    • 11.3.2. Sztuka doboru czasu oczekiwania (161)
    • 11.3.3. Wykrywanie braku komunikatów (167)
    • 11.3.4. Tworzenie synchronicznych kodów wykonawczych (168)
    • 11.3.5. Asercje asynchroniczne (170)
    • 11.3.6. Testy w pełni asynchroniczne (170)
    • 11.3.7. Wykrywanie braku błędów asynchronicznych (173)
  • 11.4. Testowanie systemów niedeterministycznych (176)
    • 11.4.1. Problem z planowaniem wykonywania testów (176)
    • 11.4.2. Testowanie komponentów rozproszonych (176)
    • 11.4.3. Aktorzy imitacyjni (177)
    • 11.4.4. Komponenty rozproszone (179)
  • 11.5. Testowanie elastyczności systemu (179)
  • 11.6. Testowanie sprężystości systemu (179)
    • 11.6.1. Sprężystość aplikacji (180)
    • 11.6.2. Sprężystość infrastruktury (183)
  • 11.7. Testowanie responsywności systemu (185)
  • 11.8. Podsumowanie (186)

Rozdział 12. Wzorce uodporniania na awarie i odtwarzania systemu (187)

  • 12.1. Wzorzec Prosty Komponent (187)
    • 12.1.1. Opis problemu (188)
    • 12.1.2. Stosowanie wzorca (188)
    • 12.1.3. Weryfikacja wzorca (190)
    • 12.1.4. Kiedy stosować wzorzec? (191)
  • 12.2. Wzorzec Jądro Błędu (191)
    • 12.2.1. Opis problemu (191)
    • 12.2.2. Stosowanie wzorca (192)
    • 12.2.3. Weryfikacja wzorca (195)
    • 12.2.4. Kiedy stosować wzorzec? (196)
  • 12.3. Wzorzec Pozwól Na Awarię (196)
    • 12.3.1. Opis problemu (197)
    • 12.3.2. Stosowanie wzorca (197)
    • 12.3.3. Weryfikacja wzorca (198)
    • 12.3.4. Zagadnienia implementacyjne (199)
    • 12.3.5. Konkluzja: wzorzec Bicie Serca (200)
    • 12.3.6. Konkluzja: wzorzec Proaktywny Sygnał Awaryjny (201)
  • 12.4. Wzorzec Bezpiecznik (202)
    • 12.4.1. Opis problemu (202)
    • 12.4.2. Stosowanie wzorca (203)
    • 12.4.3. Weryfikacja wzorca (206)
    • 12.4.4. Kiedy stosować wzorzec? (207)
  • 12.5. Podsumowanie (207)

Rozdział 13. Wzorce replikacyjne (209)

  • 13.1. Wzorzec Replikacja Aktywna-Pasywna (209)
    • 13.1.1. Opis problemu (210)
    • 13.1.2. Stosowanie wzorca (211)
    • 13.1.3. Weryfikacja wzorca (220)
    • 13.1.4. Kiedy stosować wzorzec? (221)
  • 13.2. Wzorzec Replikacja Wielokrotna-Główna (221)
    • 13.2.1. Replikacja oparta na konsensusie (222)
    • 13.2.2. Replikacja z wykrywaniem i rozwiązywaniem konfliktów (225)
    • 13.2.3. Bezkonfliktowe typy replikowanych danych (226)
  • 13.3. Wzorzec Replikacja Aktywna-Aktywna (233)
    • 13.3.1. Opis problemu (234)
    • 13.3.2. Stosowanie wzorca (235)
    • 13.3.3. Weryfikacja wzorca (240)
    • 13.3.4. Odniesienie do wirtualnej synchroniczności (241)
  • 13.4. Podsumowanie (242)

Rozdział 14. Wzorce zarządzania zasobami (245)

  • 14.1. Wzorzec Enkapsulacja Zasobów (245)
    • 14.1.1. Opis problemu (246)
    • 14.1.2. Stosowanie wzorca (246)
    • 14.1.3. Weryfikacja wzorca (252)
    • 14.1.4. Kiedy stosować wzorzec? (253)
  • 14.2. Wzorzec Wypożyczenie Zasobu (253)
    • 14.2.1. Opis problemu (254)
    • 14.2.2. Stosowanie wzorca (254)
    • 14.2.3. Weryfikacja wzorca (256)
    • 14.2.4. Kiedy stosować wzorzec? (257)
    • 14.2.5. Zagadnienia implementacyjne (257)
    • 14.2.6. Wariant: zastosowanie wzorca Wypożyczenie Zasobu do częściowego udostępniania zasobu (258)
  • 14.3. Wzorzec Złożone Polecenie (258)
    • 14.3.1. Opis problemu (259)
    • 14.3.2. Stosowanie wzorca (260)
    • 14.3.3. Weryfikacja wzorca (267)
    • 14.3.4. Kiedy stosować wzorzec? (267)
  • 14.4. Wzorzec Pula Zasobów (268)
    • 14.4.1. Opis problemu (268)
    • 14.4.2. Stosowanie wzorca (269)
    • 14.4.3. Weryfikacja wzorca (271)
    • 14.4.4. Zagadnienia implementacyjne (272)
  • 14.5. Wzorzec Zarządzane Blokowanie (272)
    • 14.5.1. Opis problemu (273)
    • 14.5.2. Stosowanie wzorca (273)
    • 14.5.3. Weryfikacja wzorca (276)
    • 14.5.4. Kiedy stosować wzorzec? (277)
  • 14.6. Podsumowanie (277)

Rozdział 15. Wzorce przepływów komunikatów (279)

  • 15.1. Wzorzec Zapytanie-Odpowiedź (280)
    • 15.1.1. Opis problemu (280)
    • 15.1.2. Stosowanie wzorca (281)
    • 15.1.3. Popularne implementacje wzorca (282)
    • 15.1.4. Weryfikacja wzorca (287)
    • 15.1.5. Kiedy stosować wzorzec? (288)
  • 15.2. Wzorzec Samowystarczalny Komunikat (288)
    • 15.2.1. Opis problemu (289)
    • 15.2.2. Stosowanie wzorca (289)
    • 15.2.3. Weryfikacja wzorca (291)
    • 15.2.4. Kiedy stosować wzorzec? (292)
  • 15.3. Wzorzec Zapytaj (292)
    • 15.3.1. Opis problemu (293)
    • 15.3.2. Stosowanie wzorca (293)
    • 15.3.3. Weryfikacja wzorca (296)
    • 15.3.4. Kiedy stosować wzorzec? (297)
  • 15.4. Wzorzec Przekaż Przepływ (298)
    • 15.4.1. Opis problemu (298)
    • 15.4.2. Stosowanie wzorca (298)
    • 15.4.3. Weryfikacja wzorca (299)
    • 15.4.4. Kiedy stosować wzorzec? (299)
  • 15.5. Wzorzec Agregator (300)
    • 15.5.1. Opis problemu (300)
    • 15.5.2. Stosowanie wzorca (300)
    • 15.5.3. Weryfikacja wzorca (304)
    • 15.5.4. Kiedy stosować wzorzec? (304)
  • 15.6. Wzorzec Saga (304)
    • 15.6.1. Opis problemu (305)
    • 15.6.2. Stosowanie wzorca (306)
    • 15.6.3. Weryfikacja wzorca (307)
    • 15.6.4. Kiedy stosować wzorzec? (309)
  • 15.7. Wzorzec Biznesowy Uścisk Dłoni (lub Niezawodna Dostawa) (309)
    • 15.7.1. Opis problemu (310)
    • 15.7.2. Stosowanie wzorca (310)
    • 15.7.3. Weryfikacja wzorca (314)
    • 15.7.4. Kiedy stosować wzorzec? (315)
  • 15.8. Podsumowanie (315)

Rozdział 16. Wzorce sterowania przepływem komunikatów (317)

  • 16.1. Wzorzec Pobierz (317)
    • 16.1.1. Opis problemu (318)
    • 16.1.2. Stosowanie wzorca (318)
    • 16.1.3. Weryfikacja wzorca (320)
    • 16.1.4. Kiedy stosować wzorzec? (321)
  • 16.2. Wzorzec Zarządzana Kolejka (321)
    • 16.2.1. Opis problemu (322)
    • 16.2.2. Stosowanie wzorca (322)
    • 16.2.3. Weryfikacja wzorca (323)
    • 16.2.4. Kiedy stosować wzorzec? (324)
  • 16.3. Wzorzec Pomiń (324)
    • 16.3.1. Opis problemu (324)
    • 16.3.2. Stosowanie wzorca (325)
    • 16.3.3. Weryfikacja wzorca (327)
    • 16.3.4. Kiedy stosować wzorzec? (329)
  • 16.4. Wzorzec Dławik (330)
    • 16.4.1. Opis problemu (330)
    • 16.4.2. Stosowanie wzorca (330)
    • 16.4.3. Weryfikacja wzorca (333)
  • 16.5. Podsumowanie (333)

Rozdział 17. Wzorce zarządzania i zapisywania stanów (335)

  • 17.1. Wzorzec Obiekt Domenowy (336)
    • 17.1.1. Opis problemu (336)
    • 17.1.2. Stosowanie wzorca (336)
    • 17.1.3. Weryfikacja wzorca (339)
  • 17.2. Wzorzec Odłamkowanie (340)
    • 17.2.1. Opis problemu (340)
    • 17.2.2. Stosowanie wzorca (340)
    • 17.2.3. Weryfikacja wzorca (342)
    • 17.2.4. Ważna uwaga (342)
  • 17.3. Wzorzec Źródło Zdarzeń (343)
    • 17.3.1. Opis problemu (343)
    • 17.3.2. Stosowanie wzorca (343)
    • 17.3.3. Weryfikacja wzorca (345)
    • 17.3.4. Kiedy stosować wzorzec? (345)
  • 17.4. Wzorzec Strumień Zdarzeń (346)
    • 17.4.1. Opis problemu (347)
    • 17.4.2. Stosowanie wzorca (347)
    • 17.4.3. Weryfikacja wzorca (349)
    • 17.4.4. Kiedy stosować wzorzec? (349)
  • 17.5. Podsumowanie (350)

DODATKI

Dodatek A. Tworzenie diagramów systemów reaktywnych (353)

Dodatek B. Zilustrowany przykład (355)

  • B.1. Partycje geograficzne (355)
  • B.2. Planowanie przepływu informacji (357)
    • B.2.1. Krok 1.: odbieranie danych (358)
    • B.2.2. Krok 2.: przesyłanie danych do odpowiedniego węzła (358)
    • B.2.3. Krok 3.: relokacja i efektywne odczytywanie danych (359)
    • B.2.4. Bilans (362)
  • B.3. Co będzie w przypadku awarii? (362)
    • B.3.1. Awaria klienta (363)
    • B.3.2. Awaria łącza sieciowego (364)
    • B.3.3. Awaria węzła wejściowego dla danych (364)
    • B.3.4. Awaria łącza sieciowego między punktem wejścia danych a kwadratem mapy (364)
    • B.3.5. Awaria węzła z kwadratami mapy (365)
    • B.3.6. Awaria komponentu kwadratu sumarycznego (366)
    • B.3.7. Awaria łącza pomiędzy kwadratami mapy (366)
    • B.3.8. Awaria węzła z widokami map (366)
    • B.3.9. Podsumowanie obsługi awarii (366)
  • B.4. Czego nauczyliśmy się z tego przykładu? (367)
  • B.5. Co dalej? (368)

Dodatek C. Manifest reaktywny (369)

  • C.1. Główna treść (369)
  • C.2. Glosariusz (371)
    • C.2.1. Asynchronizm (371)
    • C.2.2. Ciśnienie wsteczne (371)
    • C.2.3. Przetwarzanie wsadowe (371)
    • C.2.4. Komponent (372)
    • C.2.5. Delegowanie (372)
    • C.2.6. Elastyczność (372)
    • C.2.7. Awaria (373)
    • C.2.8. Izolacja (373)
    • C.2.9. Przezroczystość lokalizacji (374)
    • C.2.10. Sterowanie komunikatami (374)
    • C.2.11. Algorytm nieblokujący (375)
    • C.2.12. Protokół (375)
    • C.2.13. Replikacja (375)
    • C.2.14. Zasób (375)
    • C.2.15. Skalowalność (376)
    • C.2.16. System (376)
    • C.2.17. Użytkownik (376)

Skorowidz (377)

Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-283-3796-1
Rozmiar pliku: 6,0 MB

BESTSELLERY

Kategorie: