Spis treści[Ukryć][Pokazać]
- Czym więc jest federacja modułów?
- Dlaczego federacja modułów?
- Podstawowe komponenty federacji modułów
Podstawowe cechy federacji modułów+-
- Doskonała wydajność sieci
- Efektywny rozwój
- Zdolność do samoleczenia i redundancji
- Efektywna obsługa wspólnych zależności
- Zamiast ponownie wdrażać konsumentów, wdrażaj niezależny kod.
- Podczas uruchamiania zaimportuj kod z innych kompilacji.
- Ulepszone doświadczenie programisty przy jednoczesnym zachowaniu doświadczenia klienta
- Mikrofrontendy działają w sposób monolityczny.
- Wnioski
Koncepcja mikro frontendów stosuje mikrousługi do tworzenia frontendów.
Ideą jest rozbicie aplikacji lub strony internetowej na mniejsze, niezależnie opracowane części, które są następnie łączone w czasie wykonywania, a nie tworzenie ich jako jednego, spójnego monolitu.
Metoda umożliwia tworzenie innych komponentów aplikacji przy użyciu innych technologii i przy niezależnych zespołach.
Ideą jest zmniejszenie kosztów utrzymania związanych z typowym monolitem poprzez segmentację rozwoju w ten sposób.
Pozwalając im skoncentrować się na konkretnym obszarze aplikacji jako spójny zespół, umożliwia to również nowe formy współpracy między deweloperami zaplecza i frontendu.
Na przykład możesz mieć zespół, który jest wyłącznie odpowiedzialny za możliwości wyszukiwania lub inny aspekt kluczowego produktu, który ma kluczowe znaczenie dla firmy.
Dzięki federacji modułów masz wystarczającą funkcjonalność do obsługi przepływu pracy, który mikro frontend podejść mandatów.
W tym poście szczegółowo przyjrzymy się architekturze federacji modułów, a także jej głównym funkcjom i wzorcom aplikacji.
Więc co to jest? federacja modułów?
Projekt federacji modułów JavaScript wykorzystuje ponownie używane części w wielu aplikacjach.
To dość prosty żargon, ale po prostu sprawiłem, że wyglądało to w ten sposób, aby wyglądało na przewiewne.
Ponieważ wszyscy jesteśmy zaznajomieni z udostępnianiem komponentów w aplikacji React, federacja modułów skutecznie realizuje ten sam cel w praktyce, z wyjątkiem tego, że dynamicznie udostępnia moduły aplikacji do wykorzystania przez inne aplikacje.
Federacja Modułów stara się przezwyciężyć problem współdzielenia modułów w systemie rozproszonym, dostarczając te kluczowe elementy współdzielone jako makro lub mikro, zgodnie z potrzebami.
Osiąga się to poprzez usunięcie ich z aplikacji i przepływu pracy kompilacji.
Dlaczego federacja modułów?
Oto kilka czynników, które federacja modułów może z łatwością obsłużyć:
- Zewnętrzne i biblioteki DLL (biblioteki łączy dynamicznych) były wszystkim, co czasami mieliśmy do udostępniania funkcji między aplikacjami. Wszystko to sprawiło, że skalowanie udostępniania kodu było niezwykle trudne.
- NPM jest powolny.
- Kiedy dwa oddzielne programy współdzielą kluczowy kod, muszą być dynamiczne i elastyczne.
Aby autonomiczne aplikacje były całkowicie we własnym repozytorium, wdrażane oddzielnie i działały jako własne niezależne SPA, stworzono federację modułów.
Podstawowe komponenty federacji modułów
Zanim zagłębimy się głębiej, ważne jest krótkie omówienie kilku nowych koncepcji, które wnosi federacja modułów.
- Host: po załadowaniu strony początkowo zainicjowana kompilacja lub moduł jest nazywany hostem. Dostawca może być traktowany jako gospodarz.
- Remote: Remote to inna konstrukcja, która wykorzystuje część hosta. Nazywani są również klientami.
- Host dwukierunkowy: kompilacja pakietu Webpack, która działa zarówno jako zdalny, używany przez inne hosty, jak i jako host, który wykorzystuje zdalne.
- Federacja dostawców: umożliwia deklaratywne udostępnianie współużytkowanego środowiska uruchomieniowego zależności modułu npm dla hosta lub zdalnego, niezależnie od lokalizacji, z której są one ładowane. W ten sposób rozwiązuje się jeden z głównych problemów wydajnościowych z mikrofrontendami.
Wzorce aplikacji sfederowanych
Wiecznie zielony system projektowy
Jedną z najbardziej podstawowych form aplikacji sfederowanych jest „wiecznie zielony pilot”, który jest współdzielonym pilotem, takim jak „system projektowania” lub „biblioteka komponentów”, który jest niezależnie dystrybuowany i aktualizowany dla wszystkich użytkowników.
Ponieważ każdy zespół aplikacji nie musi poświęcać czasu na poprawki, może to być pomocne w zapewnieniu, że wszystkie witryny internetowe są zgodne z najnowszą tożsamością korporacyjną.
Aby zaprojektować i wdrożyć ograniczenia i procedury niezbędne do zagwarantowania bezpiecznych, ciągłych aktualizacji, może to być przydatne dla firm miejsce rozpoczęcia rozważania architektury aplikacji sfederowanych.
Poniżej przedstawiono kilka przypadków użycia, w których niezależnie wdrożone współużytkowane piloty mogą być odpowiednim rozwiązaniem:
- Systemy projektowe
- Powłoki aplikacji
- Biblioteki komponentów
- Konsumenci
- Wspólne zestawy narzędzi
- Alternatywne modele dystrybucji widżetów używane przez wewnętrzne lub zewnętrzne
Udostępnianie wielu modułów SPA
Używaj ponownie wyeksportowanych funkcji, takich jak komponenty, w różnych samodzielnych aplikacjach jednostronicowych. Korzyści obejmują:
- Konsumenci otrzymują automatyczne aktualizacje
- Ekspertyza domeny pozostaje w zespole, który za nią odpowiada.
- Usprawnia procedurę wdrażania, ponieważ oddzielne wydania modułów nie są konieczne.
Federacja oparta na Shell
Federacja oparta na powłokach obejmuje:
- Podczas tworzenia nowej wersji produktu zespół produktu nie czeka, aż zespół Checkout zakończy swoje zadanie.
- Podczas przełączania pilotów nie ma przeładowywania strony.
- W razie potrzeby Shell oferuje powolne zdalne ładowanie i (najwyższego poziomu) routing.
- Routing między urządzeniami zdalnymi jest możliwy dzięki federacji dostawców, która umożliwia ponowne wykorzystanie często używanych pakietów npm.
- Shell oferuje strukturę i inne typowe zależności, które są ponownie używane przez leniwe ładowane piloty.
Federacja wielopowłokowa
Podobna do opisanej powyżej federacji opartej na powłokach, ale używała innych powłok.
Zawiera:
- kilka pocisków
- Białe etykiety
- Nie wszystkie piloty są wymagane przez powłokę B lub mają niezależne implementacje.
Podstawowe cechy federacji modułów
Doskonała wydajność sieci
Problem z normalnym składem modułu NPM polega na tym, że wraz ze wzrostem liczby zależnych, rozmiar aplikacji generalnie rośnie.
Aby uniknąć ładowania pakietów podczas ładowania aplikacji i ładować je tylko wtedy, gdy jest to konieczne, federacja modułów oferuje możliwość leniwego ładowania pakietów.
Zapobiega to konieczności pobierania modułów, zanim będą faktycznie potrzebne, co poprawia szybkość witryny.
Efektywny rozwój
Każdy projekt może być tworzony i dostarczany w izolacji i może być realizowany przez różne zespoły, ponieważ Federacja Modułów zachęca do organizowania aplikacji w dyskretne projekty, dzięki czemu można je budować i wdrażać osobno (a więc równolegle).
Zdolność do samoleczenia i redundancji
Współdzielone zależności pozwalają Module Federation na śledzenie wszystkich zależności Twojego programu w jednym miejscu.
W ten sposób, nawet jeśli aplikacja nie deklaruje zależności lub gdy występują problemy z siecią, nadal wie, czego potrzebuje i może w razie potrzeby poradzić sobie z jej pobraniem.
Efektywna obsługa wspólnych zależności
Ponadto Module Federation oferuje doskonałe zarządzanie zależnościami, skutecznie rozwiązując wymagania dostawców i stron trzecich, dzięki czemu Twoja aplikacja nigdy nie będzie ładować więcej niż jednej wersji biblioteki.
Zamiast ponownie wdrażać konsumentów, wdrażaj niezależny kod.
Deweloper jest bardzo zainteresowany posiadaniem zawsze zielonej funkcjonalności. Po zmianie ujawnionej funkcji zależnej nie będzie już konieczne ponowne instalowanie konsumentów.
Muszę przyznać, że jest to bardzo potężna cecha sama w sobie, która będzie wymagała dokładnego zbadania, aby zapobiec nieoczekiwanym wynikom.
Podczas uruchamiania zaimportuj kod z innych kompilacji.
Przyjmując model pakietów NPM, możemy rozważyć aplikacje, które wykorzystują federację modułów podobnie jak API, a nie współdzielenie kodu i myślenie o „bibliotece”.
W taki sam sposób, w jaki mogą również otrzymywać funkcje z innych aplikacji, aplikacje internetowe mogą teraz udostępniać funkcje innym aplikacjom.
Ulepszone doświadczenie programisty przy jednoczesnym zachowaniu doświadczenia klienta
Każdy Programista JavaScript będzie całkiem wygodnie z Federacją Modułów, ponieważ jest to wtyczka Webpack, która jest dostępna od wersji Webpack 5.
Jest to dość mocne i intrygujące, jeśli się nad tym zastanowimy.
Korzystając z programów ładujących Webpack innych firm, weź pod uwagę wszystkie komponenty, które: Webpack pakiety, w tym skrypty, zasoby, style, obrazy, przeceny i nie tylko.
Korzystając z federacji modułów, wszystkie te elementy mogą być współużytkowane i federowane.
Mikrofrontendy działają w sposób monolityczny.
Dodanie wspólnych funkcji do aplikacji jest dość łatwe; po prostu zaimportuj pakiet w normalny sposób lub użyj ładowania synchronicznego.
Alternatywnie ładowanie asynchroniczne może służyć do ładowania zależności tylko w razie potrzeby przy użyciu ładowania z opóźnieniem.
Wnioski
W tym poście omówiliśmy federację modułów jako fantastyczny wybór do tworzenia aplikacji mikro-frontendowej.
Pozwalanie aplikacjom na wymianę i korzystanie z funkcji w czasie wykonywania zachęca do skalowalności, umożliwiając różnym zespołom pracę nad niezależnymi aplikacjami.
Gdy zmieni się typowa funkcjonalność, nie będziesz musiał projektować i wdrażać swoich klientów, ponieważ obsługuje on zawsze dostępną funkcjonalność.
Twój program po skonfigurowaniu będzie działał jak monolit, co jest fantastyczne.
Współużytkowane zależności służą do zmniejszania rozmiaru aplikacji. Ponieważ wielu programistów zna już środowisko Webpack, doświadczenie programisty jest doskonałe.
Dodaj komentarz