Facebook - konwersja
  • promocja

Mikrofrontendy w akcji - ebook

Wydawnictwo:
Tłumacz:
Data wydania:
14 września 2021
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.

Mikrofrontendy w akcji - ebook

Kilka lat temu świat uznał aplikacje monolityczne za przestarzałe i nie dość elastyczne, jednak do niedawna pojęcie mikrousług dotyczyło wyłącznie backendu. Naturalną konsekwencją ich rozwoju stało się budowanie na podobnych zasadach architektury frontendu. Mikrofrontendy zapewniają elastyczność i łatwość utrzymania. Pozwalają na zaprojektowanie systemu jako zbioru samowystarczalnych komponentów obejmujących własne interfejsy, logikę i bazy danych. Połączenie tych niezależnie rozwijanych elementów następuje w przeglądarce użytkownika. Rozwiązanie takie jest z powodzeniem wykorzystywane przez najważniejszych graczy na rynku.

To książka przeznaczona dla programistów aplikacji internetowych, architektów oprogramowania i inżynierów. Wyjaśniono w niej ideę podziału monolitu na komponenty i pokazano, w jaki sposób zastosować z powodzeniem architekturę mikrousług do frontendu aplikacji. Omówiono też takie zagadnienia jak kompozycja po stronie klienta i po stronie serwera, routing czy zapewnienie spójnego wyglądu. Nie zabrakło wartościowych uwag na temat organizacji pracy zespołów programistów służącej zwiększeniu korzyści z zastosowania architektury mikrofrontendów. Książka prezentuje praktyczne podejście: w kolejnych rozdziałach pokazano poszczególne etapy pracy nad w pełni funkcjonalną aplikacją internetową.

Najważniejsze zagadnienia:

  • tworzenie aplikacji internetowych złożonych z komponentów
  • strategie integracji: AJAX, SSI i inne
  • zasadność wyboru architektury mikrofrontendowej
  • zapewnienie spójności wszystkim interfejsom użytkownika w całej aplikacji
  • budżet wydajności i strategie ładowania zasobów

Architektura mikrofrontendowa: niezawodność po stronie frontendu!

Spis treści

Przedmowa (11)

Podziękowania (13)

O książce (15)

O autorze (19)

CZĘŚĆ I POCZĄTEK PRZYGODY Z MIKROFRONTENDAMI (21)

1. Czym jest mikrofrontend? (23)

  • 1.1. Szerszy kontekst (24)
    • 1.1.1. Systemy i zespoły (26)
    • 1.1.2. Frontend (28)
    • 1.1.3. Integracja frontendu (31)
    • 1.1.4. Wspólne tematy (32)
  • 1.2. Jakie problemy rozwiązuje architektura mikrofrontendowa? (34)
    • 1.2.1. Optymalizacja rozwoju funkcjonalności (34)
    • 1.2.2. Precz z frontendowym monolitem (34)
    • 1.2.3. Gotowość na zmiany (36)
    • 1.2.4. Korzyści z niezależności (38)
  • 1.3. Wady architektury mikrofrontendowej (40)
    • 1.3.1. Redundancja (40)
    • 1.3.2. Spójność (41)
    • 1.3.3. Różnorodność technologii (41)
    • 1.3.4. Więcej kodu frontendowego (42)
  • 1.4. Kiedy stosować model mikrofrontendowy? (42)
    • 1.4.1. Dla średnich i dużych projektów (42)
    • 1.4.2. Najlepiej działa w sieci (43)
    • 1.4.3. Produktywność i koszty (44)
    • 1.4.4. Kiedy unikać mikrofrontendów? (44)
    • 1.4.5. Kto używa mikrofrontendów? (45)
  • 1.5. Podsumowanie (46)

2. Mój pierwszy projekt mikrofrontendowy (49)

  • 2.1. Przedstawiamy TraktoryOnline (50)
    • 2.1.1. Zaczynamy (51)
    • 2.1.2. Uruchamianie aplikacji (52)
  • 2.2. Przejścia między stronami za pomocą łączy (54)
    • 2.2.1. Własność danych (54)
    • 2.2.2. Kontrakt między zespołami (55)
    • 2.2.3. Jak to zrobić? (56)
    • 2.2.4. Zmiany adresów URL (59)
    • 2.2.5. Korzyści (59)
    • 2.2.6. Wady (60)
    • 2.2.7. Kiedy stosować łącza? (60)
  • 2.3. Kompozycja za pomocą ramek iframe (61)
    • 2.3.1. Jak to zrobić? (61)
    • 2.3.2. Korzyści (63)
    • 2.3.3. Wady (63)
    • 2.3.4. Kiedy stosować ramki iframe? (64)
  • 2.4. Co dalej? (65)
  • 2.5. Podsumowanie (66)

CZĘŚĆ II ROUTING, KOMPOZYCJA I KOMUNIKACJA (67)

3. Kompozycja techniką AJAX i routing po stronie serwera (69)

  • 3.1. Kompozycja techniką AJAX (70)
    • 3.1.1. Jak to zrobić? (71)
    • 3.1.2. Przestrzenie nazw dla stylów i skryptów (73)
    • 3.1.3. Deklaratywne ładowanie z biblioteką h-include (76)
    • 3.1.4. Korzyści (77)
    • 3.1.5. Wady (78)
    • 3.1.6. Kiedy stosować technikę AJAX? (79)
    • 3.1.7. Podsumowanie (79)
  • 3.2. Routing przez współdzielony serwer WWW (80)
    • 3.2.1. Jak to zrobić? (82)
    • 3.2.2. Przestrzenie nazw dla zasobów (85)
    • 3.2.3. Metody konfiguracji przekierowań (86)
    • 3.2.4. Odpowiedzialność za infrastrukturę (87)
    • 3.2.5. Kiedy stosować? (88)
  • 3.3. Podsumowanie (89)

4. Kompozycja po stronie serwera (91)

  • 4.1. Kompozycja - Nginx i SSI (92)
    • 4.1.1. Jak to zrobić? (93)
    • 4.1.2. Szybsze ładowanie (95)
  • 4.2. Obsługa niepewnych fragmentów (97)
    • 4.2.1. Zawodny fragment (97)
    • 4.2.2. Integracja fragmentu "W okolicy" (98)
    • 4.2.3. Limity czasu i treści zastępcze (99)
    • 4.2.4. Treści zastępcze (101)
  • 4.3. Analiza wydajności łączenia fragmentów (102)
    • 4.3.1. Ładowanie równoległe (102)
    • 4.3.2. Zagnieżdżone fragmenty (103)
    • 4.3.3. Opóźnione ładowanie (103)
    • 4.3.4. Czas do odebrania pierwszego bajta a streaming (104)
  • 4.4. Szybki przegląd innych rozwiązań (106)
    • 4.4.1. Edge-Side Includes (106)
    • 4.4.2. Tailor firmy Zalando (107)
    • 4.4.3. Podium (109)
    • 4.4.4. Którego rozwiązania użyć? (115)
  • 4.5. Zalety i wady kompozycji po stronie serwera (115)
    • 4.5.1. Korzyści (115)
    • 4.5.2. Wady (116)
    • 4.5.3. Kiedy integracja po stronie serwera ma sens? (117)
  • 4.6. Podsumowanie (117)

5. Kompozycja po stronie klienta (119)

  • 5.1. Mikrofrontend w komponencie webowym (120)
    • 5.1.1. Jak to zrobić? (122)
    • 5.1.2. Framework w komponencie webowym (126)
  • 5.2. Izolacja stylów dzięki mechanizmowi Shadow DOM (128)
    • 5.2.1. Tworzenie ukrytego elementu głównego (128)
    • 5.2.2. Ograniczenie widoczności stylów (129)
    • 5.2.3. Kiedy używać mechanizmu Shadow DOM? (131)
  • 5.3. Zalety i wady komponentów webowych jako metody kompozycji (132)
    • 5.3.1. Korzyści (132)
    • 5.3.2. Wady (132)
    • 5.3.3. Kiedy integracja po stronie klienta ma sens? (133)
  • 5.4. Podsumowanie (134)

6. Wzorce komunikacji (135)

  • 6.1. Komunikacja interfejsów użytkownika (136)
    • 6.1.1. Od komponentu nadrzędnego do podrzędnego (137)
    • 6.1.2. Komunikacja od komponentu podrzędnego do nadrzędnego (140)
    • 6.1.3. Komunikacja między fragmentami (144)
    • 6.1.4. Mechanizm publikacji/subskrypcji interfejsu API Broadcast Channel (148)
    • 6.1.5. Kiedy komunikacja między interfejsami użytkownika się sprawdza? (149)
  • 6.2. Inne mechanizmy komunikacji (150)
    • 6.2.1. Globalny kontekst i autentykacja (151)
    • 6.2.2. Zarządzanie stanem (152)
    • 6.2.3. Komunikacja między frontendem a backendem (153)
    • 6.2.4. Replikacja danych (153)
  • 6.3. Podsumowanie (155)

7. Routing po stronie klienta i powłoka aplikacji (157)

  • 7.1. Powłoka aplikacji z płaskim routingiem (160)
    • 7.1.1. Czym jest powłoka aplikacji? (160)
    • 7.1.2. Anatomia powłoki aplikacji (160)
    • 7.1.3. Routing po stronie klienta (162)
    • 7.1.4. Renderowanie stron (164)
    • 7.1.5. Kontrakty między powłoką aplikacji a zespołami (167)
  • 7.2. Powłoka aplikacji z dwupoziomowym routingiem (168)
    • 7.2.1. Router pierwszego poziomu (169)
    • 7.2.2. Routing na poziomie zespołu (170)
    • 7.2.3. Co się dzieje przy zmianie adresu? (171)
    • 7.2.4. Interfejsy API powłoki aplikacji (174)
  • 7.3. Rzut oka na metaframework single-spa (175)
    • 7.3.1. Jak działa single-spa? (176)
  • 7.4. Wady połączonych aplikacji jednostronicowych (181)
    • 7.4.1. Tematy do przemyślenia (181)
    • 7.4.2. Kiedy stosować połączone aplikacje jednostronicowe? (184)
  • 7.5. Podsumowanie (185)

8. Kompozycja i uniwersalne renderowanie (187)

  • 8.1. Połączenie dwóch kompozycji (188)
    • 8.1.1. Mechanizm SSI i komponenty webowe (190)
    • 8.1.2. Kontrakt między zespołami (194)
    • 8.1.3. Inne rozwiązania (195)
  • 8.2. Kiedy stosować uniwersalną kompozycję? (195)
    • 8.2.1. Uniwersalne renderowanie z kompozycją wyłącznie po stronie serwera (196)
    • 8.2.2. Większa złożoność (196)
    • 8.2.3. Uniwersalnie renderowane połączone aplikacje jednostronicowe? (196)
  • 8.3. Podsumowanie (197)

9. Który rodzaj architektury pasuje do mojego projektu? (199)

  • 9.1. Przypomnienie terminologii (200)
    • 9.1.1. Routing i przejścia między stronami (201)
    • 9.1.2. Metody kompozycji (201)
    • 9.1.3. Wysokopoziomowe modele architektoniczne (203)
  • 9.2. Porównanie złożoności (206)
    • 9.2.1. Architektoniczna niejednorodność (207)
  • 9.3. Witryna czy aplikacja? (207)
    • 9.3.1. Kontinuum między dokumentem a aplikacją (208)
    • 9.3.2. Serwer, klient czy uniwersalne renderowanie? (209)
  • 9.4. Wybór odpowiedniej architektury i metody integracji (210)
    • 9.4.1. Silna izolacja (przestarzały kod / kod strony trzeciej) (212)
    • 9.4.2. Szybkie pierwsze załadowanie / stopniowe ulepszanie (212)
    • 9.4.3. Błyskawiczna reakcja (213)
    • 9.4.4. Miękka nawigacja (214)
    • 9.4.5. Wiele mikrofrontendów na jednej stronie (214)
  • 9.5. Podsumowanie (215)

CZĘŚĆ III SZYBKOŚĆ, SPÓJNOŚĆ I EFEKTYWNOŚĆ (217)

10. Ładowanie zasobów (219)

  • 10.1. Strategie odnoszenia się do zasobów (220)
    • 10.1.1. Odniesienia bezpośrednie (220)
    • 10.1.2. Cache-busting a niezależne wdrożenia (221)
    • 10.1.3. Odniesienie przez przekierowanie (klient) (222)
    • 10.1.4. Odniesienia w dyrektywie include (225)
    • 10.1.5. Synchronizacja wersji kodu i zasobów (227)
    • 10.1.6. Zasoby we fragmencie (230)
    • 10.1.7. Zintegrowane rozwiązania (Tailor, Podium itp.) (230)
    • 10.1.8. Szybkie podsumowanie (232)
  • 10.2. Podział na pakiety (233)
    • 10.2.1. Protokół HTTP/2 (233)
    • 10.2.2. Wszystko w jednym pakiecie (234)
    • 10.2.3. Pakiet na zespół (235)
    • 10.2.4. Pakiet dla każdej strony i fragmentu (235)
  • 10.3. Ładowanie na żądanie (235)
    • 10.3.1. Komponenty pośredniczące (236)
    • 10.3.2. Opóźnione ładowanie stylów (237)
  • 10.4. Podsumowanie (237)

11. Wydajność to klucz (239)

  • 11.1. Projektowanie z myślą o wydajności (240)
    • 11.1.1. Różne zespoły, różne pomiary (240)
    • 11.1.2. Międzyzespołowy budżet wydajności (242)
    • 11.1.3. Odpowiedzialność za spowolnienia (243)
    • 11.1.4. Korzyści w obszarze wydajności (244)
  • 11.2. Biblioteki zewnętrzne (246)
    • 11.2.1. Koszt autonomii (246)
    • 11.2.2. Małe jest piękne (247)
    • 11.2.3. Jedna globalna wersja (249)
    • 11.2.4. Wersjonowane pakiety z bibliotekami zewnętrznymi (250)
    • 11.2.5. Unikaj współdzielenia kodu biznesowego (262)
  • 11.3. Podsumowanie (262)

12. Interfejs użytkownika i system projektowania (265)

  • 12.1. Po co nam system projektowania? (266)
    • 12.1.1. Cel i rola (268)
    • 12.1.2. Korzyści (268)
  • 12.2. Centralny system projektowania a autonomia zespołów (269)
    • 12.2.1. Czy potrzebuję własnego systemu projektowania? (269)
    • 12.2.2. Proces, a nie projekt (270)
    • 12.2.3. Stały budżet i odpowiedzialność (270)
    • 12.2.4. Poparcie zespołów (271)
    • 12.2.5. Proces rozwoju - centralny czy federacyjny? (273)
    • 12.2.6. Etapy rozwoju (274)
  • 12.3. Integracja w czasie wykonania czy wersjonowanie? (276)
    • 12.3.1. Integracja w czasie wykonania (276)
    • 12.3.2. Wersjonowany pakiet (278)
  • 12.4. Artefakty generyczne i specyficzne (281)
    • 12.4.1. Wybór formatu komponentów (281)
    • 12.4.2. Nieuchronne zmiany (285)
  • 12.5. Co powinno wchodzić w skład centralnej biblioteki wzorców? (286)
    • 12.5.1. Koszt współdzielenia komponentów (286)
    • 12.5.2. Centralny czy lokalny? (286)
    • 12.5.3. Centralne i lokalne biblioteki wzorców (289)
  • 12.6. Podsumowanie (290)

13. Zespoły i granice (293)

  • 13.1. Dopasowanie między systemami i zespołami (294)
    • 13.1.1. Granice między zespołami (295)
    • 13.1.2. Głębia integracji (297)
    • 13.1.3. Zmiana kulturowa (300)
  • 13.2. Dzielenie się wiedzą (301)
    • 13.2.1. Wspólnota praktyków (302)
    • 13.2.2. Nauka (303)
    • 13.2.3. Zaprezentuj swoją pracę (303)
  • 13.3. Globalne problemy (303)
    • 13.3.1. Centralna infrastruktura (304)
    • 13.3.2. Zespół ds. specjalistycznych komponentów (305)
    • 13.3.3. Globalne uzgodnienia i konwencje (305)
  • 13.4. Różnorodność technologiczna (306)
    • 13.4.1. Zestawy narzędzi i opcje domyślne (306)
    • 13.4.2. Szablon frontendowy (306)
    • 13.4.3. Odrzuć strach przed kopiowaniem (308)
    • 13.4.4. Wartość podobieństw (308)
  • 13.5. Podsumowanie (309)

14. Migracje, lokalne środowisko rozwojowe i testowanie (311)

  • 14.1. Migracja (312)
    • 14.1.1. Model koncepcyjny na przetarcie szlaku (312)
    • 14.1.2. Strategia nr 1: kawałek po kawałku (314)
    • 14.1.3. Strategia nr 2: najpierw frontend (315)
    • 14.1.4. Strategia nr 3: od zera do wielkiego wybuchu (317)
  • 14.2. Rozwój w środowisku lokalnym (318)
    • 14.2.1. Bez kodu pozostałych zespołów (319)
    • 14.2.2. Tworzenie atrap fragmentów (319)
    • 14.2.3. Fragmenty w izolacji (321)
    • 14.2.4. Pobieranie mikrofrontendów innych zespołów ze środowiska testowego lub produkcji (323)
  • 14.3. Testowanie (323)
  • 14.4. Podsumowanie (325)
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-7782-0
Rozmiar pliku: 12 MB

BESTSELLERY

Kategorie: