E-book details

JavaScript i wzorce projektowe. Programowanie dla zaawansowanych. Wydanie II

JavaScript i wzorce projektowe. Programowanie dla zaawansowanych. Wydanie II

Simon Timms

Ebook

JavaScript przez mnóstwo lat był wykorzystywany głównie jako technika uzupełniania podstawowej funkcjonalności stron internetowych. Dziś to się zmienia: JavaScript należy do najpopularniejszych języków i jest wykorzystywany na wiele sposobów. Wzorce projektowe to jedna z ciekawszych możliwości: dzięki nim programista bierze pod uwagę sprawdzone rozwiązania.

Niniejsza książka jest przeznaczona dla osób używających JavaScriptu, które chcą nauczyć się programowania obiektowego w tym języku, a także dobrze poznać standard ECMAScript 2015. Przedstawiono tu wzorce kreacyjne, strukturalne i operacyjne oraz metody ich stosowania. Przeanalizowano wzorce widoku modelu i wzorce do budowy aplikacji internetowych. Obszernie omówiono mikrousługi, a także wzorce do testowania kodu za pomocą atrap obiektów i środowisk atrap obiektów oraz techniki monkey patching. Opisano też kilka wzorców zaawansowanych, w tym wzorzec wprowadzania zależności i przetwarzania końcowego w czasie rzeczywistym.

Najważniejsze zagadnienia omówione w książce:

  • czym są wzorce projektowe i jak należy organizować kod
  • poszczególne grupy wzorców projektowych i ich zastosowanie
  • programowanie funkcyjne i reaktywne
  • programowanie aspektowe
  • inne narzędzia zgodne ze standardem ECMAScript 2015/2016

Wzorce projektowe — niezbędne w przyborniku programisty!


Simon Timms — jest głównym projektantem oprogramowania w firmie Clear-Measure w Austin, w Teksasie. Jest ekspertem w dziedzinie technologii serwerowych .NET, interesuje się wizualizacjami i przetwarzaniem w chmurze. Angażuje się w rozwijanie metodyki DevOps. Często wypowiada się na jej temat w ramach grupy Calgary.Net, której jest przewodniczącym.

O autorze (11)

O recenzencie (12)

Przedmowa (13)

Rozdział 1. Projektowanie dla przyjemności i zysku (17)

  • Droga do powstania języka JavaScript (17)
    • Początki (18)
    • Przerwa (21)
    • Pojawienie się aplikacji GMail (21)
    • Wszechobecność języka JavaScript (23)
  • Czym jest wzorzec projektowy? (25)
  • Antywzorce (28)
  • Podsumowanie (29)

CZĘŚĆ I. KLASYCZNE WZORCE PROJEKTOWE (31)

Rozdział 2. Organizacja kodu (33)

  • Porcje kodu (33)
  • O co tak w ogóle chodzi z zasięgiem globalnym? (35)
  • Obiekty w języku JavaScript (37)
  • Tworzenie prototypu (41)
  • Dziedziczenie (44)
  • Moduły (45)
  • Klasy i moduły standardu ECMAScript 2015 (49)
  • Najlepsze procedury i rozwiązywanie problemów (50)
  • Podsumowanie (50)

Rozdział 3. Wzorce kreacyjne (53)

  • Fabryka abstrakcyjna (54)
    • Implementacja (58)
  • Budowniczy (60)
    • Implementacja (61)
  • Metoda wytwórcza (63)
    • Implementacja (63)
  • Singleton (66)
    • Implementacja (67)
    • Mankamenty (68)
  • Prototyp (68)
    • Implementacja (69)
  • Wskazówki i zabiegi (70)
  • Podsumowanie (70)

Rozdział 4. Wzorce strukturalne (73)

  • Adapter (73)
    • Implementacja (75)
  • Most (77)
    • Implementacja (78)
  • Kompozyt (81)
    • Przykład (82)
    • Implementacja (83)
  • Dekorator (85)
    • Implementacja (86)
  • Fasada (87)
    • Implementacja (87)
  • Pyłek (89)
    • Implementacja (90)
  • Pełnomocnik (91)
    • Implementacja (92)
  • Rady i wskazówki (93)
  • Podsumowanie (94)

Rozdział 5. Wzorce operacyjne (95)

  • Łańcuch odpowiedzialności (96)
    • Implementacja (96)
  • Polecenie (100)
    • Komunikat polecenia (100)
    • Element wywołujący (Invoker) (102)
    • Element odbierający (Receiver) (103)
  • Interpreter (103)
    • Przykład (104)
    • Implementacja (104)
  • Iterator (106)
    • Implementacja (106)
    • Iteratory standardu ECMAScript 2015 (107)
  • Mediator (108)
    • Implementacja (109)
  • Memento (110)
    • Implementacja (111)
  • Obserwator (113)
    • Implementacja (114)
  • Stan (116)
    • Implementacja (117)
  • Strategia (119)
    • Implementacja (121)
  • Metoda szablonowa (123)
    • Implementacja (124)
  • Odwiedzający (125)
  • Rady i wskazówki (129)
  • Podsumowanie (130)

CZĘŚĆ II. INNE WZORCE (131)

Rozdział 6. Programowanie funkcyjne (133)

  • Funkcje w programowaniu funkcyjnym są pozbawione efektów ubocznych (134)
  • Przekazywanie funkcji (134)
    • Implementacja (136)
  • Filtry i potoki (138)
    • Implementacja (139)
  • Akumulatory (141)
    • Implementacja (142)
  • Zapamiętywanie (142)
    • Implementacja (143)
  • Niezmienność (145)
  • "Leniwe" tworzenie instancji (146)
    • Implementacja (146)
  • Rady i wskazówki (148)
  • Podsumowanie (149)

Rozdział 7. Programowanie reaktywne (151)

  • Zmiany stanu aplikacji (152)
  • Strumienie (152)
  • Filtrowanie strumieni (155)
  • Scalanie strumieni (157)
  • Strumienie powiązane z multipleksowaniem (159)
  • Rady i wskazówki (160)
  • Podsumowanie (160)

Rozdział 8. Wzorce aplikacji (161)

  • Najpierw trochę historii (162)
  • Model View Controller (162)
    • Kod oparty na wzorcu MVC (167)
  • Model View Presenter (171)
    • Kod oparty na wzorcu MVP (172)
  • Model View ViewModel (174)
    • Kod oparty na wzorcu MVVM (176)
    • Lepszy sposób przenoszenia zmian między modelem i widokiem (177)
    • Obserwacja zmian widoku (179)
  • Rady i wskazówki (180)
  • Podsumowanie (180)

Rozdział 9. Wzorce internetowe (181)

  • Wysyłanie kodu JavaScript (181)
    • Łączenie plików (182)
    • Minifikacja (185)
    • Sieci CDN (186)
  • Dodatki (187)
    • Biblioteka jQuery (187)
    • Biblioteka d3 (189)
  • Jednoczesne realizowanie dwóch działań - wielowątkowość (192)
  • Wzorzec Wyłącznik (194)
    • Wycofanie (195)
    • Ograniczanie funkcjonalności aplikacji (196)
  • Wzorzec obiektów Promise (197)
  • Rady i wskazówki (199)
  • Podsumowanie (200)

Rozdział 10. Wzorce przesyłania komunikatów (201)

  • Czym w ogóle jest komunikat? (202)
    • Polecenia (203)
    • Zdarzenia (204)
  • Żądanie-odpowiedź (206)
  • Publikowanie-subskrybowanie (209)
    • Rozprzestrzenianie (212)
  • Kolejki utraconych wiadomości (215)
    • Ponawianie komunikatu (216)
    • Potoki i filtry (217)
    • Tworzenie wersji komunikatów (218)
  • Rady i wskazówki (219)
  • Podsumowanie (220)

Rozdział 11. Mikrousługi (221)

  • Fasada (223)
  • Selektor usługi (224)
  • Usługi agregujące (225)
  • Potok (226)
  • Aktualizator komunikatów (227)
  • Wzorce niepowodzeń (229)
    • Ograniczanie funkcjonalności usługi (229)
    • Magazyn komunikatów (229)
    • Ponawianie komunikatów (230)
    • Idempotentność obsługi komunikatów (231)
  • Rady i wskazówki (231)
  • Podsumowanie (232)

Rozdział 12. Wzorce używane do testowania (233)

  • Piramida testowania (234)
  • Testowanie po trochę za pomocą testów jednostkowych (234)
  • Technika Arrange-Act-Assert (236)
    • Asercja (237)
  • Obiekty fałszywe (237)
  • Szpiedzy testów (239)
  • Elementy zastępcze (240)
  • Atrapa obiektu (242)
  • Technika monkey patching (243)
  • Interakcja z interfejsem użytkownika (243)
    • Testowanie przy użyciu przeglądarki (243)
    • Oszukiwanie modelu DOM (244)
    • Opakowywanie operacji modyfikowania (245)
  • Rady i wskazówki (246)
  • Podsumowanie (247)

Rozdział 13. Wzorce zaawansowane (249)

  • Wprowadzanie zależności (249)
  • Przetwarzanie końcowe w czasie rzeczywistym (253)
  • Programowanie aspektowe (255)
  • Kody mixin (257)
  • Makra (258)
  • Rady i wskazówki (260)
  • Podsumowanie (260)

Rozdział 14. ECMAScript 2015/2016 - obecne rozwiązania (261)

  • TypeScript (261)
    • Dekoratory (262)
    • Słowa kluczowe async i await (263)
    • Typowanie (264)
  • BabelJS (265)
    • Klasy (267)
    • Parametry domyślne (269)
    • Literały szablonu (270)
    • Powiązania bloków za pomocą słowa kluczowego let (271)
    • Środowisko produkcyjne (272)
  • Rady i wskazówki (272)
  • Podsumowanie (272)

Skorowidz (275)

  • Title: JavaScript i wzorce projektowe. Programowanie dla zaawansowanych. Wydanie II
  • Author: Simon Timms
  • Original title: Mastering JavaScript Design Patterns, Second Edition
  • Translation: Piotr Pilch
  • ISBN: 978-83-283-3195-2, 9788328331952
  • Date of issue: 2017-05-19
  • Format: Ebook
  • Item ID: jswpz2
  • Publisher: Helion