Szczegóły ebooka

Java EE. Zaawansowane wzorce projektowe

Java EE. Zaawansowane wzorce projektowe

Murat Yener, Alex Theedom

Ebook

Rozwiązania realnych problemów w Javie EE przy użyciu wzorców projektowych

Platforma Java EE to najbardziej zaawansowane rozwiązanie do budowania złożonych systemów informatycznych, jakie oferuje firma Oracle. Jest wykorzystywana wszędzie tam, gdzie wymaga się najwyższej wydajności, bezpieczeństwa oraz niezawodności. Java EE dostarcza kompletny zbiór narzędzi, który pozwoli Ci zbudować aplikację o dowolnym stopniu skomplikowania.

Jeżeli chcesz poznać najlepsze wzorce tworzenia oprogramowania z wykorzystaniem Javy EE, to trafiłeś na doskonałą książkę. Sięgnij po nią i poznaj podstawy pracy z tą platformą oraz klasyczne wzorce projektowe. Gdy już opanujesz fundamenty, przejdziesz do nauki zaawansowanych mechanizmów. Wstrzykiwanie zależności, porównanie CDI i EJB, budowanie serwisów REST-owych, fabryki czy fasady to tylko niektóre z poruszanych tu tematów. Ponadto przekonasz się, jak tworzyć asynchroniczne ziarna lub serwlety oraz przygotujesz własną usługę odmierzającą czas. Na sam koniec przeanalizujesz kilka antywzorców. Pamiętaj — ich nie warto stosować! Książka ta jest doskonałą lekturą dla wszystkich programistów języka Java chcących pogłębić swoją wiedzę na temat Javy EE oraz najlepszych praktyk.

Dzięki tej książce nauczysz się:
  • jak wykorzystywać adnotacyjne implementacje wzorców projektowych Javy EE i stosować przejrzystszy model programowania niż w J2EE;
  • implementować w Javie EE najważniejsze wzorce, takie jak Fasada, Singleton, Fabryka, Dekorator, Obserwator, Wstrzykiwanie Zależności oraz Model-Widok-Kontroler;
  • metod programowania w Javie EE, np. programowania aspektowego, asynchronicznego i implementowania REST-owych usług sieciowych;
  • unikać błędów polegających nie nieprawidłowym stosowaniu wzorców projektowych;
  • stosować wzorce projektowe we właściwym kontekście, a nie wszędzie gdzie się uda.

Najlepsze techniki pracy z Javą EE!

O autorach (11)

O korektorze merytorycznym (13)

Podziękowania (15)

Przedmowa (17)

Wprowadzenie (19)

CZĘŚĆ I. WPROWADZENIE DO WZORCÓW PROJEKTOWYCH W JAVIE EE

Rozdział 1. Krótki przegląd wzorców projektowych (27)

  • Czym jest wzorzec projektowy (28)
    • Jak odkryto wzorce i do czego są potrzebne (29)
    • Wzorce w realnym świecie (30)
  • Podstawy wzorców projektowych (31)
  • Wzorce w rozwiązaniach dla biznesu (31)
    • Od Javy do Javy dla biznesu (31)
    • Pojawienie się wzorców Javy dla przedsiębiorstw (32)
    • Wzorce projektowe a wzorce biznesowe (33)
    • Stare dobre wzorce projektowe spotykają Javę EE (33)
    • Kiedy wzorce stają się antywzorcami (35)
  • Podsumowanie (35)

Rozdział 2. Podstawy Javy EE (37)

  • Architektura wielowarstwowa (38)
  • Warstwa kliencka (39)
  • Warstwa logiki biznesowej (40)
    • Komponent sieciowy (40)
  • Warstwa EIS (40)
  • Serwery Java EE (41)
  • Profil sieciowy Javy EE (42)
  • Podstawowe zasady Javy EE (42)
  • Konwencja przed konfiguracją (43)
  • CDI (43)
  • Interceptory (44)
  • Podsumowanie (45)
  • Ćwiczenia (45)

CZĘŚĆ II. IMPLEMENTACJA WZORCÓW PROJEKTOWYCH W JAVIE EE

Rozdział 3. Wzorzec Fasada (49)

  • Czym jest Fasada (50)
    • Diagram klas wzorca Fasady (51)
  • Implementacja wzorca Fasada w zwykłym kodzie źródłowym (52)
  • Implementacja wzorca Fasada w Javie EE (53)
    • Fasada z ziarnami bezstanowymi (53)
    • Fasada ze stanowym ziarnem (55)
  • Gdzie i kiedy używać wzorca Fasada (55)
  • Podsumowanie (56)
  • Ćwiczenia (56)

Rozdział 4. Wzorzec Singleton (57)

  • Czym jest Singleton (58)
    • Diagram klas wzorca Singleton (59)
    • Implementacja wzorca Singleton w zwykłym kodzie (59)
  • Implementacja wzorca Singleton w Javie EE (63)
    • Ziarna singletonowe (63)
    • Wykorzystywanie singletonów przy uruchamianiu (64)
    • Określanie kolejności uruchamiania (65)
    • Współbieżność (67)
  • Gdzie i kiedy używać wzorca Singleton (69)
  • Podsumowanie (69)
  • Ćwiczenia (70)

Rozdział 5. Wstrzykiwanie zależności i CDI (71)

  • Na czym polega wstrzykiwanie zależności (72)
  • Implementacja wstrzykiwania zależności w zwykłym kodzie (72)
  • Implementacja wstrzykiwania zależności w Javie EE (75)
    • Adnotacja @Named (76)
    • Wstrzykiwanie zależności i kontekst (CDI) (77)
    • CDI a EJB (78)
    • Ziarna CDI (78)
    • Adnotacja @Inject (79)
    • Konteksty i zakres (79)
    • Nazewnictwo i EL (80)
    • Ziarna CDI jako wsparcie dla JSF (80)
    • Kwalifikatory (81)
    • Alternatywy (81)
    • Stereotypy (82)
    • Inne wzorce związane z CDI (82)
  • Podsumowanie (83)
  • Ćwiczenia (83)

Rozdział 6. Wzorzec Fabryka (85)

  • Czym jest Fabryka (86)
  • Metoda Fabryczna (86)
    • Implementacja Metody Fabrycznej w zwykłym kodzie (88)
  • Fabryka Abstrakcyjna (89)
    • Implementacja Fabryki Abstrakcyjnej w zwykłym kodzie (90)
  • Implementacja wzorca Fabryka w Javie EE (91)
    • Okiełznać moc kontenera CDI (97)
  • Gdzie i kiedy używać wzorców fabrycznych (100)
  • Podsumowanie (101)
  • Ćwiczenia (101)

Rozdział 7. Wzorzec Dekorator (103)

  • Czym jest wzorzec Dekorator (104)
    • Diagram klas wzorca Dekorator (105)
  • Implementacja wzorca Dekorator w zwykłym kodzie (106)
  • Implementacja wzorca Dekorator w Javie EE (109)
    • Dekoratory bez konfiguracji XML (113)
  • Gdzie i kiedy używać wzorca Dekorator (114)
  • Podsumowanie (115)
  • Ćwiczenia (115)

Rozdział 8. Programowanie aspektowe (interceptory) (117)

  • Co to jest programowanie aspektowe (118)
  • Implementacja AOP w zwykłym kodzie (120)
  • Aspekty w Javie EE i interceptory (122)
    • Cykl życia interceptora (125)
    • Interceptory na poziomie domyślnym (125)
    • Kolejność interceptorów (126)
    • Interceptory CDI (128)
  • Gdzie i kiedy używać interceptorów (130)
  • Podsumowanie (131)

Rozdział 9. Asynchroniczność (133)

  • Co to jest programowanie asynchroniczne (134)
    • Wzorzec Asynchroniczność (134)
  • Implementacja asynchroniczności w zwykłym kodzie (136)
  • Programowanie asynchroniczne w Javie EE (138)
    • Asynchroniczne ziarna (138)
    • Asynchroniczne serwlety (140)
  • Gdzie i kiedy stosować programowanie asynchroniczne (143)
  • Podsumowanie (144)
  • Ćwiczenia (145)

Rozdział 10. Usługa odmierzania czasu (147)

  • Czym jest usługa odmierzania czasu (148)
  • Implementacja czasomierza w Javie EE (150)
    • Czasomierze automatyczne (150)
    • Czasomierze programowe (151)
    • Wyrażenia czasowe (153)
    • Transakcje (156)
  • Podsumowanie (156)
  • Ćwiczenia (157)

Rozdział 11. Wzorzec Obserwator (159)

  • Czym jest Obserwator (160)
    • Opis (160)
    • Diagram klas wzorca Obserwator (162)
  • Implementacja wzorca Obserwator w zwykłym kodzie (162)
  • Implementacja wzorca Obserwator w Javie EE (164)
  • Gdzie i kiedy używać wzorca Obserwator (169)
  • Podsumowanie (170)
  • Ćwiczenia (170)

Rozdział 12. Wzorzec Dostęp do Danych (171)

  • Czym jest wzorzec Dostęp do Danych (172)
    • Diagram klas Dostępu do Danych (172)
  • Ogólne informacje o wzorcu Dostęp do Danych (173)
    • Wzorzec Obiekt Transferu Danych (173)
    • API JPA i ORM (174)
  • Implementacja wzorca Dostęp do Danych w Javie EE (174)
    • Implementacja DAO bezpieczna pod względem typów (179)
  • Gdzie i kiedy używać wzorca Dostęp do Danych (180)
  • Podsumowanie (180)
  • Ćwiczenia (180)

Rozdział 13. REST-owe usługi sieciowe (181)

  • Co to jest REST (182)
  • Sześć warunków REST (183)
    • Klient-serwer (183)
    • Jednolity interfejs (184)
    • Bezstanowość (184)
    • Możliwość zapisywania danych w buforze (184)
    • System warstwowy (184)
    • Kod na żądanie (184)
  • Model dojrzałości Richardsona (185)
    • Poziom 0. - zwykły XML (185)
    • Poziom 1. - zasoby (185)
    • Poziom 2. - czasowniki HTTP (185)
    • Poziom 3. - kontrolki hipermedialne (185)
  • Projektowanie REST-owego interfejsu API (185)
    • Nazewnictwo zasobów (186)
    • Rzeczowniki, a nie czasowniki (186)
    • Znaczenie nazw (187)
    • Liczba mnoga (187)
    • Metody HTTP (187)
  • REST w akcji (188)
    • Rzeczownik users (188)
    • Rzeczowniki topics i posts (189)
  • Implementacja REST w Javie EE (191)
  • HATEOAS (194)
  • Gdzie i kiedy używać REST (196)
  • Podsumowanie (197)
  • Ćwiczenia (197)

Rozdział 14. Wzorzec Model - Widok - Kontroler (199)

  • Czym jest wzorzec MVC (200)
    • Typy wzorca MVC (201)
  • Implementacja wzorca MVC w zwykłym kodzie (202)
  • Implementacja wzorca MVC w Javie EE (206)
  • Serwlet FacesServlet (206)
  • Implementacja wzorca MVC przy użyciu serwletu FacesServlet (206)
  • Gdzie i kiedy używać wzorca MVC (208)
  • Podsumowanie (209)
  • Ćwiczenia (209)

Rozdział 15. Inne wzorce projektowe w Javie EE (211)

  • Co to są gniazda sieciowe (212)
  • Co to jest warstwa pośrednia do przekazywania wiadomości (214)
  • Co to jest architektura mikrousługowa (215)
    • Architektura monolityczna (215)
    • Skalowalność (217)
    • Dekompozycja na usługi (218)
    • Zalety architektury mikrousługowej (218)
    • Nie ma nic za darmo (219)
    • Wnioski (220)
  • Kilka antywzorców na zakończenie (220)
    • Uberklasa (220)
    • Architektura Lazani (221)
    • Pan Kolumb (221)
    • Korzyści z przyjaźni (221)
    • Supernowoczesność (222)
    • Szwajcarski scyzoryk (222)

CZĘŚĆ III. PODSUMOWANIE

Rozdział 16. Wzorce projektowe - dobre, złe i brzydkie (225)

  • Dobre - wzorce sukcesu (225)
  • Złe - nadużywanie i błędne stosowanie wzorców (227)
  • Brzydkie (228)
  • Podsumowanie (230)

Skorowidz (231)

  • Tytuł: Java EE. Zaawansowane wzorce projektowe
  • Autor: Murat Yener, Alex Theedom
  • Tytuł oryginału: Professional Java EE Design Patterns
  • Tłumaczenie: Łukasz Piwko
  • ISBN: 978-83-283-1316-3, 9788328313163
  • Data wydania: 2015-10-19
  • Format: Ebook
  • Identyfikator pozycji: javeez
  • Wydawca: Helion