Obsah[Skrýt][Ukázat]
- Co je tedy federace modulů?
- Proč modulová federace?
- Základní komponenty federace modulu
Základní funkce modulu Federace+-
- Vynikající výkon webu
- Efektivní rozvoj
- Schopnost samoléčení a redundance
- Efektivní řešení běžných závislostí
- Namísto opětovného nasazení spotřebitelů nasaďte nezávislý kód.
- Při spuštění importujte kód z jiných sestavení.
- Vylepšené vývojářské zkušenosti při zachování klientské zkušenosti
- Mikrofrontendy fungují monolitickým způsobem.
- Proč investovat do čističky vzduchu?
Koncept mikro frontendů aplikuje mikroslužby na vývoj frontendu.
Cílem je rozdělit aplikaci nebo web na menší, nezávisle vyvinuté části, které jsou pak propojeny během běhu, na rozdíl od jejich vytvoření jako jediného soudržného monolitu.
Metoda umožňuje vytvářet další komponenty aplikace pomocí jiných technologií a s nezávislými týmy.
Cílem je snížit náklady na údržbu typického monolitu tím, že vývoj segmentujete tímto způsobem.
Tím, že jim umožňuje soustředit se na určitou oblast aplikace jako koherentní tým, umožňuje také nové formy spolupráce mezi backendovými a frontendovými vývojáři.
Můžete mít například tým, který je výhradně zodpovědný za schopnost vyhledávání nebo jiný aspekt klíčového produktu, který je pro podnikání zásadní.
Díky federaci modulů máte dostatek funkcí pro zvládnutí pracovního postupu, který mikro frontend přistupovat k mandátům.
Tento příspěvek se podrobně podívá na architekturu federace modulů a také na její hlavní funkce a vzory aplikací.
Takže, co je modulová federace?
Návrh federace modulů Javascriptu využívá opakovaně použité části v mnoha aplikacích.
Je to docela základní žargon, ale prostě jsem to tak udělal, aby to vypadalo svižně.
Jak všichni dobře víme se sdílením komponent v rámci aplikace React, Module Federation v praxi efektivně dosahuje stejného cíle, s tou výjimkou, že dynamicky zpřístupňuje aplikační moduly pro spotřebu jinými aplikacemi.
Module Federation se snaží překonat problém sdílení modulů v distribuovaném systému dodáním těchto klíčových sdílených prvků jako makro nebo mikro podle potřeby.
Toho lze dosáhnout tím, že je odstraníte z vašich aplikací a pracovního postupu sestavování.
Proč modulová federace?
Zde jsou některé faktory, které může federace modulů snadno zvládnout:
- Externí soubory a knihovny DLL (Dynamic Link Libraries) byly vše, co jsme občas měli pro sdílení funkcí mezi aplikacemi. Díky tomu všemu bylo škálování sdílení kódu extrémně náročné.
- NPM je pomalý.
- Když dva samostatné programy sdílejí klíčový kód, musí být dynamické a flexibilní.
Aby samostatné aplikace byly zcela ve svém vlastním úložišti, nasazovaly se samostatně a fungovaly jako vlastní nezávislé SPA, byla vytvořena federace modulů.
Základní komponenty federace modulu
Než se ponoříme hlouběji, je důležité krátce probrat několik nových konceptů, které federace modulů přináší.
- Host: Když se stránka načte, původně inicializované sestavení nebo modul se nazývá hostitel. Poskytovatele lze považovat za hostitele.
- Remote: Remote je jiná konstrukce, která používá část hostitele. Jsou také označováni jako zákazníci.
- Obousměrný hostitel: sestavení webového balíčku, které funguje jako vzdálené, které využívají ostatní hostitelé, i jako hostitel, který spotřebovává vzdálená zařízení.
- Federace dodavatelů: umožňuje deklarativně sdílené sdílení závislostí modulů npm za běhu pro hostitele nebo vzdálené, bez ohledu na umístění, ze kterého jsou načteny. Tímto způsobem je vyřešen jeden z hlavních problémů s výkonem mikro rozhraní.
Vzory federované aplikace
Evergreen designový systém
Jednou z nejzákladnějších forem federovaných aplikací je „evergreen remote“, což je sdílené dálkové ovládání jako „Design System“ nebo „Component library“, které je nezávisle distribuováno a aktualizováno pro všechny uživatele.
Bez toho, aby každý aplikační tým musel trávit čas revizemi, může to být užitečné pro zajištění toho, aby všechny online weby dodržovaly nejnovější firemní identitu.
Aby bylo možné navrhnout a zavést limity a postupy nezbytné k zaručení bezpečných průběžných aktualizací, může to být pro podniky užitečné místo, kde začít při zvažování architektury federovaných aplikací.
Níže jsou uvedeny některé případy použití, kdy by se nezávisle nasazená sdílená dálková ovládání mohla hodit:
- Návrhové systémy
- Aplikační skořápky
- Knihovny komponent
- Spotřebitelé
- Sdílené sady nástrojů
- Alternativní distribuční modely pro widgety používané interními nebo externími
Sdílení modulů Multi-SPA
Znovu použijte již exportované funkce, jako jsou komponenty, v různých samostatných jednostránkových aplikacích. Mezi výhody patří:
- Spotřebitelé dostávají automatické aktualizace
- Odbornost domény zůstává v týmu, který ji má na starosti.
- Zjednodušuje postup nasazení, protože není nutné vydávat samostatné moduly.
Shell řízená federace
Federace řízená shellem zahrnuje:
- Při vytváření nové verze produktu produktový tým nečeká, až tým Checkout dokončí svou práci.
- Při přepínání dálkových ovladačů nedochází k opětovnému načítání stránky.
- V případě potřeby Shell nabízí pomalé vzdálené načítání a (nejvyšší) směrování.
- Směrování přes vzdálená zařízení je umožněno prostřednictvím federace dodavatelů, která umožňuje opětovné použití často používaných balíčků npm.
- Shell nabízí rámec a další běžné závislosti, které jsou znovu používány líně načtenými dálkovými ovladači.
Multi-shell federace
Podobné jako federace řízená shelly popsaná výše, ale používá jiné shelly.
Obsahuje:
- množství mušlí
- Bílé označení
- Ne všechna dálková ovládání vyžaduje Shell B nebo mají nezávislé implementace.
Základní funkce modulu Federace
Vynikající výkon webu
Problém s normálním složením modulu NPM spočívá v tom, že jak počet závislých osob stoupá, velikost aplikace obecně roste.
Abyste se vyhnuli načítání balíčků při načítání vaší aplikace a načítali je pouze v případě potřeby, Module Federation vám nabízí možnost líně načítat balíčky.
To zabraňuje nutnosti stahovat moduly dříve, než jsou skutečně vyžadovány, což zvyšuje rychlost webu.
Efektivní rozvoj
Každý projekt může být vytvořen a dodán izolovaně a může být prováděn různými týmy, protože Module Federation vám doporučuje organizovat vaši aplikaci do samostatných projektů, abyste je mohli sestavovat a nasazovat samostatně (a tedy paralelně).
Schopnost samoléčení a redundance
Sdílené závislosti umožňují Module Federation sledovat všechny závislosti vašeho programu na jednom místě.
Tímto způsobem, i když aplikace nedeklaruje závislost nebo když dojde k problémům se sítí, stále ví, co potřebuje, a může si to stáhnout podle potřeby.
Efektivní řešení běžných závislostí
Module Federation navíc nabízí vynikající správu závislostí, efektivně řeší požadavky dodavatelů a třetích stran, takže vaše aplikace nikdy nenačte více než jednu verzi knihovny.
Namísto opětovného nasazení spotřebitelů nasaďte nezávislý kód.
Vývojář má velký zájem o evergreen funkčnosti. Jakmile se odkrytá závislá funkčnost změní, nebude již nutné znovu instalovat spotřebitele.
Musím přiznat, že toto je velmi účinná funkce sama o sobě, která bude vyžadovat pečlivé prozkoumání, aby se zabránilo neočekávaným výsledkům.
Při spuštění importujte kód z jiných sestavení.
Při přijímání modelu balíčků NPM bychom mohli uvažovat o aplikacích, které používají Module Federation podobné rozhraní API, spíše než o sdílení kódu a uvažování o „knihovně“.
Stejným způsobem, jakým mohou také přijímat funkce z jiných aplikací, mohou nyní webové aplikace poskytovat funkce jiným aplikacím.
Vylepšené vývojářské zkušenosti při zachování klientské zkušenosti
Žádný JavaScript vývojář bude s Module Federation docela pohodlný, protože je to plugin Webpack, který je přístupný od verze Webpack 5.
To je ve skutečnosti docela silné a zajímavé, pokud se nad tím trochu zamyslíme.
Při použití zavaděčů Webpack třetích stran zvažte všechny součásti, které Webpack balíčky, včetně skriptů, prostředků, stylů, obrázků, přirážek a dalších.
Pomocí federace modulů lze všechny tyto položky sdílet a federovat.
Mikrofrontendy fungují monolitickým způsobem.
Je docela snadné přidat sdílené funkce do vaší aplikace; stačí importovat balíček jako normálně nebo použít synchronní načítání.
Alternativně lze asynchronní načítání použít pouze k načtení závislostí v případě potřeby pomocí líného načítání.
Proč investovat do čističky vzduchu?
V tomto příspěvku jsme diskutovali o Module Federation jako o fantastické volbě pro vývoj vaší mikrofrontendové aplikace.
Nechat aplikace vyměňovat si a využívat funkce za běhu podporuje škálovatelnost tím, že umožňuje různým týmům pracovat na nezávislých aplikacích.
Když se běžné funkce změní, nebudete muset navrhovat a nasazovat své zákazníky, protože podporuje stále zelené funkce.
Váš program bude po nastavení fungovat jako monolit, což je fantastické.
Závislosti ke sdílení se používají ke snížení velikosti aplikací. Vzhledem k tomu, že mnoho vývojářů již zná prostředí Webpacku, je vývojářský zážitek vynikající.
Napsat komentář