Java EE 8. Wzorce projektowe i najlepsze praktyki - ebook
Java EE 8. Wzorce projektowe i najlepsze praktyki - ebook
Od profesjonalnych systemów informatycznych wymaga się wysokiej dostępności usług, łatwego wprowadzania niezbędnych zmian, skalowalności i możliwości przetworzenia ogromnej ilości danych. Java EE 8 znakomicie nadaje się do tworzenia aplikacji spełniających te wyśrubowane kryteria. Poza tym Java to język wieloplatformowy, jej kod jest otwarty, została dobrze przetestowana, a doświadczenie i wsparcie społeczności użytkowników okazują się nie do przecenienia. Wszechstronność i popularność Javy ma też mroczną stronę - programiści bardzo często muszą rozwiązywać istotne problemy, które zwykle dotyczą integracji usług, wysokiej dostępności i odporności systemu na błędy. Rozwiązaniem pozwalającym uniknąć wielu z tych kłopotów jest zastosowanie odpowiednich wzorców projektowych i przestrzeganie dobrych praktyk.
To książka przeznaczona dla programistów, którzy chcą tworzyć aplikacje biznesowe z użyciem wzorców projektowych, wzorców biznesowych i najlepszych praktyk. Zawiera wyjaśnienie podstawowych koncepcji Javy EE 8, opis jej warstw oraz omówienie najlepszych praktyk tworzenia aplikacji biznesowych. Przedstawia zasady łączenia wzorców projektowych i wzorców biznesowych w Javie EE 8, a także techniki optymalizacji rozwiązań z wykorzystaniem programowania aspektowego, programowania reaktywnego i mikrousług. Opisano tu szereg wzorców: integracyjne, reaktywne, bezpieczeństwa, wdrażania i operacyjne. Zaprezentowano również projekt MicroProfile, przydatny do tworzenia aplikacji dla architektury mikrousług.
W książce między innymi:
- korzyści ze stosowania wzorców projektowych
- wzorce warstw prezentacji i biznesowej
- wzorce dla aplikacji działających w chmurze
- implementacja wzorca SSO
- wzorce związane ze skalowalnością, z wydajnością i zarządzaniem aplikacją
Java EE 8: zestaw świetnych narzędzi dla zawodowca!
Spis treści
O autorach 11
O redaktorze merytorycznym 12
Wstęp 13
Rozdział 1. Wprowadzenie do wzorców projektowych 19
- Czym są wzorce projektowe? 20
- Wzorce projektowe GoF 20
- Zalety wzorców projektowych 23
- Podstawowe wzorce projektowe środowiska Java 24
- Wzorzec projektowy Singleton 24
- Wzorzec projektowy Fabryka abstrakcyjna 25
- Wzorzec projektowy Fasada 26
- Wzorzec projektowy Iterator 27
- Wzorzec projektowy Pełnomocnik 28
- Wzorce tworzenia aplikacji biznesowych 29
- Różnice między wzorcami projektowymi i wzorcami tworzenia aplikacji biznesowych 29
- Podsumowanie 30
Rozdział 2. Wzorce warstwy prezentacji 31
- Warstwa prezentacji - co to takiego? 31
- Wzorzec filtra przechwytującego 33
- Implementacja filtra przechwytującego w Javie EE 8 34
- Implementacja klasy LogAccessFilter 34
- Implementacja klasy LogBrowserFilter 36
- Właściwe przypisanie filtrów 37
- Wzorzec kontrolera przedniego 38
- Implementacja klasy działającej jako FrontController 39
- Implementacja poleceń 41
- Wzorzec kontrolera aplikacji 41
- Implementacja klasy DownloadFrontController 42
- Implementacja klasy DownloadApplicationController 43
- Implementacja poleceń 46
- Różnice między wzorcami kontrolera frontowego i aplikacyjnego 48
- Podsumowanie 48
Rozdział 3. Wzorce warstwy biznesowej 49
- Warstwa biznesowa - co to takiego? 49
- Wzorzec delegat biznesowy 51
- Warstwy programowe i sprzętowe 51
- Klasyczny scenariusz użycia delegata biznesowego 53
- Zalety wzorca delegata biznesowego 55
- Wzorzec fasady sesyjnej 57
- Zalety fasady sesyjnej 57
- Implementacja wzorca fasady sesyjnej w Javie EE 58
- Klasyczny scenariusz użycia wzorca fasady sesyjnej 58
- Implementacja wzorca fasady sesyjnej 60
- Wzorzec obiektu biznesowego 71
- Aplikacje o złożonych regułach biznesowych 72
- Implementacja wzorca obiektu biznesowego 75
- Podsumowanie 77
Rozdział 4. Wzorce integracyjne 79
- Czym jest warstwa integracyjna? 79
- Wzorzec dostępu do danych 80
- Implementacja wzorca dostępu do danych 81
- Implementacja encji przy użyciu JPA 81
- Implementacja DAO 83
- Wzorzec magazynu dziedzinowego 86
- Implementacja wzorca magazynu dziedzinowego 87
- Implementacja klasy PersistenceManagerFactory 88
- Implementacja klasy PersistenceManager 89
- Implementacja klasy EmployeeStoreManager 90
- Implementacja interfejsu StageManager 91
- Implementacja klasy TransactionFactory 93
- Implementacja klasy Transaction 93
- Implementacja klasy EmployeeBusiness 94
- Wzorzec aktywatora usługi 95
- JMS (Java Message Service) 96
- Metody asynchroniczne EJB 97
- Zdarzenia asynchroniczne - producenci i nasłuchujący 98
- Implementacja wzorca aktywatora usługi 99
- Implementacja wysyłania i otrzymywania komunikatów poprzez JMS 99
- Implementacja metod asynchronicznych EJB 100
- Implementacja zdarzeń asynchronicznych - producenci i nasłuchujący 101
- Podsumowanie 102
Rozdział 5. Programowanie aspektowe i związane z tym wzorce projektowe 103
- Programowanie aspektowe - co to takiego? 104
- Programowanie aspektowe czasu kompilacji czy czasu działania? 104
- Programowanie aspektowe w Javie EE - interceptor 105
- Kilka słów na temat CDI i komponentów bean 105
- Komponent bean 106
- Luźne powiązanie 107
- Interceptory na platformie Javy EE 108
- Implementacja interceptora EJB 109
- Implementacja interceptora CDI 115
- Dekorator 119
- Wzorzec Dekorator 119
- Dekorator w systemie Javy EE 120
- Implementacja dekoratora 121
- Podsumowanie 123
Rozdział 6. Wzorce reaktywne 125
- Zdarzenia w CDI 127
- Implementacja zdarzenia w CDI 127
- Implementacja klasy FileUploadResource 128
- Implementacja obserwatorów 132
- Asynchroniczne metody komponentów EJB 134
- Różnice między zdarzeniami i asynchronicznym wywołaniem metody 134
- Implementacja asynchronicznej metody EJB 134
- Implementacja komponentów EJB 135
- Implementacja klasy FileUploadResource 137
- Asynchroniczna usługa REST 139
- Implementacja asynchronicznej usługi REST 139
- Implementacja EJB 140
- Implementacja klasy FileUploadResource 141
- Implementacja API klienckiego 144
- Podsumowanie 145
Rozdział 7. Wzorce mikrousług 147
- Wzorzec mikrousług - co to takiego? 147
- Wewnątrz aplikacji monolitycznej 149
- Sześcian skalowalności 151
- Czym naprawdę są mikrousługi? 152
- Jak działa architektura mikrousług? 152
- Aplikacja podzielona na wiele małych komponentów 153
- Zespoły wielozadaniowe 156
- Skupienie się na produkcie 156
- Prostsze i inteligentniejsze przetwarzanie 157
- Zdecentralizowane zarządzanie bibliotekami i API 157
- Zasada jednej odpowiedzialności 157
- Odporność na błędy 158
- Systemy ewolucyjne 159
- Zdecentralizowane dane 159
- Kiedy stosować architekturę mikrousług? 159
- Jak podzielić aplikację na mikrousługi? 160
- Zalety i wady aplikacji wykorzystujących mikrousługi 163
- Wzorce architektury mikrousługowej 164
- Wzorzec agregator 165
- Wzorzec pełnomocnik 165
- Wzorzec łańcuch 166
- Wzorzec rozgałęzienie 167
- Wzorzec asynchronicznego przekazywania komunikatów 167
- Implementacja mikrousług 168
- Podsumowanie 171
Rozdział 8. Wzorce dla aplikacji działających w chmurze 173
- Pojęcie aplikacji działającej w chmurze 173
- Cele stawiane aplikacjom dostosowanym do działania w chmurze 174
- Wzorce projektowe aplikacji działających w chmurze 175
- Aplikacja jako kompozyt (mikrousługi) 176
- Abstrakcja 176
- Metodologia dwunastu czynników 176
- Brama interfejsu API 182
- Rejestr serwisów 184
- Serwer konfiguracji 184
- Bezpiecznik 185
- Podsumowanie 187
Rozdział 9. Wzorce bezpieczeństwa 189
- Pojęcie wzorców bezpieczeństwa 189
- Wzorzec pojedynczego miejsca rejestracji 190
- Implementacja pojedynczego miejsca rejestracji 192
- Implementacja klasy AuthenticationResource 192
- Implementacja klas App1 i App2 197
- Mechanizmy uwierzytelniania 200
- Uwierzytelnianie proste 200
- Uwierzytelnianie na podstawie formularza 200
- Uwierzytelnianie w oparciu o skrót 202
- Uwierzytelnianie klienta 202
- Uwierzytelnianie wzajemne 202
- Kiedy stosować deskryptor wdrożenia, adnotację lub konfigurację programową? 202
- Implementacja mechanizmów uwierzytelniania 204
- Implementacja pliku web.xml 205
- Implementacja klasy HelloWorld 205
- Implementacja klasy HelloWorldServlet 207
- Interceptor uwierzytelniania 208
- Implementacja interceptora uwierzytelniania 208
- Implementacja interceptora CDI 209
- Implementacja zasobu JAX-RS 213
- Podsumowanie 214
Rozdział 10. Wzorce wdrażania 215
- Wzorce wdrażania - co to takiego? 215
- Wdrażanie kanarkowe 217
- Wskazanie serwerów kanarkowych 218
- Wdrożenie nowej wersji na serwery kanarkowe 219
- Testowanie aplikacji i weryfikacja, czy cały system działa poprawnie 219
- Wdrożenie aplikacji na pozostałe serwery 219
- Wdrażanie niebieski-zielony 219
- Określenie serwerów mających otrzymać aktualizację jako pierwsze 220
- Wdrożenie aplikacji na wybranej grupie serwerów 220
- Wdrożenie aplikacji na pozostałych serwerach 221
- Wdrażanie z testami A/B 221
- Zdefiniowanie grupy użytkowników końcowych 222
- Określenie serwerów, na których zostanie umieszczona nowa wersja 223
- Wdrożenie nowej wersji 223
- Ocena wpływu nowej wersji na użytkowników 223
- Wdrażanie ciągłe 223
- Podsumowanie 224
Rozdział 11. Wzorce operacyjne 225
- Wzorzec operacyjny - co to takiego? 225
- Wzorce związane z wydajnością i skalowalnością 226
- Pamięć podręczna 227
- Wzorzec CQRS 229
- Źródła zdarzeń 230
- Tabela indeksowa 231
- Zmaterializowany widok 233
- Sharding 234
- Wzorce związane z zarządzaniem i monitoringiem 235
- Wzorzec ambasador 236
- Wzorzec monitorowania działania aplikacji 237
- Wzorzec zewnętrznego magazynu z konfiguracją 238
- Podsumowanie 239
Rozdział 12. Projekt MicroProfile 241
- Tworzenie projektów Eclipse MicroProfile 241
- Eclipse MicroProfile Config 1.3 242
- Eclipse MicroProfile Fault Tolerance 1.1 242
- Eclipse MicroProfile Health Check 1.0 242
- Eclipse MicroProfile JWT Authentication 1.1 243
- Eclipse MicroProfile Metrics 1.1 243
- Eclipse MicroProfile OpenAPI 1.0 243
- Eclipse MicroProfile OpenTracing 1.1 243
- Eclipse MicroProfile Rest Client 1.1 243
- CDI 2.0 244
- Common Annotations 1.3 244
- JAX-RS 2.1 244
- JSON-B 1.0 244
- JSON-P 1.1 244
- Dlaczego powinniśmy używać projektu MicroProfile? 245
- Społeczność 245
- Przyszłość projektu 245
- Podsumowanie 245
Skorowidz 247
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-5504-0 |
Rozmiar pliku: | 3,9 MB |