INHOUDSOPGAWE[Versteek][Wys]
- So, wat is 'n module-federasie?
- Hoekom module federasie?
- Module federasie kernkomponente
Module Federation kern kenmerke+-
- Uitstekende webprestasie
- Effektiewe ontwikkeling
- Die vermoë om self te genees en oortolligheid
- Effektiewe hantering van algemene afhanklikhede
- In plaas daarvan om verbruikers te herontplooi, ontplooi onafhanklike kode.
- Wanneer jy hardloop, voer kode van ander geboue af.
- Verbeterde ontwikkelaarervaring terwyl die kliëntervaring bewaar word
- Mikro-frontends werk op 'n monolitiese wyse.
- Gevolgtrekking
Die konsep van mikro-frontends pas mikrodienste toe op frontend-ontwikkeling.
Die idee is om die toepassing of webwerf op te breek in kleiner, onafhanklik ontwikkelde stukke wat dan tydens looptyd verbind word, in plaas daarvan om dit as 'n enkele, samehangende monoliet te skep.
Die metode stel jou in staat om ander komponente van die toepassing te skep deur ander tegnologieë en met onafhanklike spanne te gebruik.
Die idee is om die onderhoudsuitgawes wat verband hou met 'n tipiese monoliet te verminder deur ontwikkeling op hierdie manier te segmenteer.
Deur hulle toe te laat om as 'n samehangende span op 'n spesifieke area van 'n toepassing te konsentreer, maak dit ook nuwe vorme van samewerking tussen backend- en frontend-ontwikkelaars moontlik.
Byvoorbeeld, jy kan 'n span hê wat alleen verantwoordelik is vir die soekvermoë of 'n ander aspek van 'n sleutelproduk wat deurslaggewend is vir 'n besigheid.
Danksy die module-federasie het jy genoeg funksionaliteit om die werkvloei wat die mikro frontend benaderingsmandate.
Hierdie pos sal 'n diep blik op die argitektuur van die module-federasie, sowel as die hoofkenmerke en toepassingspatrone daarvan.
So, wat is 'n module federasie?
Javascript se module-federasie-ontwerp maak gebruik van hergebruikte dele in baie toepassings.
Dit is redelik basiese jargon, maar ek het dit net eenvoudig so laat lyk om winderig te lyk.
Aangesien ons almal vertroud is met die deel van komponente binne 'n React-toepassing, bereik Module Federation effektief dieselfde doel in die praktyk, met die uitsondering dat dit toepassingsmodules dinamies blootstel vir verbruik deur ander toepassings.
Module Federation poog om die probleem van moduledeling in 'n verspreide stelsel te oorkom deur daardie sleutel-gedeelde elemente as makro of mikro soos verlang te lewer.
Dit word bereik deur hulle van jou programme en die bouwerkvloei te laat verwyder.
Hoekom module federasie?
Hier is 'n paar faktore wat module-federasie maklik kan hanteer:
- Eksterne en DLL's (Dynamic Link Libraries) was al wat ons af en toe gehad het om funksionaliteit tussen toepassings te deel. Dit alles het skaalkodedeling uiters uitdagend gemaak.
- NPM is traag.
- Wanneer twee afsonderlike programme belangrike kode deel, moet hulle dinamies en buigsaam wees.
Om selfstandige toepassings heeltemal in hul eie bewaarplek te laat wees, afsonderlik te ontplooi en as hul eie onafhanklike SPA te funksioneer, is Module Federation geskep.
Module federasie kernkomponente
Voordat u dieper duik, is dit belangrik om 'n paar nuwe konsepte wat modulefederasie bring kortliks te bespreek.
- Gasheer: Wanneer 'n bladsy laai, word die bou of module wat aanvanklik geïnisieer is, 'n gasheer genoem. 'n Verskaffer kan as 'n gasheer beskou word.
- Afstandbeheer: 'n Afstandbeheer is 'n ander konstruk wat 'n gedeelte van die gasheer gebruik. Daar word ook na hulle verwys as kliënte.
- Tweerigtinggasheer: 'n Webpack-bou wat funksioneer as beide 'n afstandbeheer wat ander gashere verbruik en 'n gasheer wat afstandbeheerders verbruik.
- Verkoperfederasie: maak dit moontlik om verklarend gedeelde looptyddeling van npm-module-afhanklikhede vir 'n gasheer of afstandbeheerder te maak, ongeag die ligging vanwaar dit gelaai word. Een van die groot werkverrigtingprobleme met mikro-frontends word op hierdie manier opgelos.
Patrone van gefedereerde toepassing
Immergroen Ontwerpstelsel
Een van die mees basiese vorme van gefedereerde toepassings is 'n "immergroen afstandbeheer", wat 'n gedeelde afstandbeheer is soos 'n "Ontwerpstelsel" of "Komponentbiblioteek" wat onafhanklik versprei en opgedateer word vir alle gebruikers.
Sonder dat elke programspan tyd aan hersienings hoef te spandeer, kan dit nuttig wees om te verseker dat alle aanlynwerwe aan die mees onlangse korporatiewe identiteit voldoen.
Om die limiete en prosedures te ontwerp en in plek te stel wat nodig is om veilige, deurlopende opdaterings te waarborg, kan dit 'n nuttige plek wees vir besighede om te begin wanneer hulle 'n gefedereerde toepassingsargitektuur oorweeg.
Die volgende is 'n paar gebruiksgevalle waar onafhanklik ontplooide gedeelde afstandbeheerders 'n geskikte pasmaat kan wees:
- Ontwerp stelsels
- Toepassingsdoppe
- Komponent biblioteke
- Verbruikers
- Gedeelde gereedskapstelle
- Alternatiewe verspreidingsmodelle vir legstukke wat deur interne of eksterne gebruik word
Multi-SPA Module Deel
Hergebruik reeds-uitgevoerde kenmerke, soos komponente, in verskillende selfstandige enkelbladsy-toepassings. Voordele sluit in:
- Verbruikers ontvang outomatiese opdaterings
- Domeinkundigheid bly in die span wat in beheer daarvan is.
- Stroomlyn die ontplooiingsprosedure omdat aparte modulevrystellings nie nodig is nie.
Shell-gedrewe federasie
Die dopgedrewe federasie sluit in:
- Wanneer 'n nuwe produkweergawe geskep word, wag die produkspan nie vir die Checkout-span om hul werk te voltooi nie.
- Wanneer jy afstandbeheer verander, is daar geen bladsy herlaai nie.
- Indien nodig, bied Shell stadige afstandlaai en (topvlak) roetes.
- Roetering oor afstandbeheerders word moontlik gemaak via verkoperfederasie, wat die hergebruik van gereelde gebruikte npm-pakkette moontlik maak.
- Shell bied die raamwerk en ander algemene afhanklikhede wat hergebruik word deur die lui gelaaide afstandbeheerders.
Multi-dop federasie
Soortgelyk aan die skulpgedrewe federasie wat hierbo beskryf is, maar het verskillende skulpe gebruik.
Dit bevat:
- 'n aantal skulpe
- Wit-etiket
- Nie alle afstandbeheerders word deur Shell B vereis of het onafhanklike implementerings nie.
Module Federation kern kenmerke
Uitstekende webprestasie
Die probleem met die normale NPM-module-samestelling is dat namate die aantal afhanklikes toeneem, die toepassing se grootte oor die algemeen toeneem.
Om te verhoed dat bondels laai wanneer jou toepassing laai en dit net laai wanneer nodig, bied Module Federation jou die vermoë om bondels lui te laai.
Dit verhoed die behoefte om modules af te laai voordat dit werklik vereis word, wat die werfspoed verbeter.
Effektiewe ontwikkeling
Elke projek kan in isolasie vervaardig en gelewer word en kan deur verskeie spanne uitgevoer word omdat Module Federation jou aanmoedig om jou aansoek in diskrete projekte te organiseer sodat jy dit afsonderlik (en dus parallel) kan bou en ontplooi.
Die vermoë om self te genees en oortolligheid
Gedeelde afhanklikhede laat Module Federation toe om tred te hou met al jou program se afhanklikhede op een plek.
Op hierdie manier, selfs wanneer 'n toepassing nie 'n afhanklikheid verklaar nie of wanneer daar netwerkprobleme is, weet dit steeds wat dit nodig het en kan dit hanteer om dit af te laai soos nodig.
Effektiewe hantering van algemene afhanklikhede
Daarbenewens bied Module Federation voortreflike afhanklikheidsbestuur, wat verskaffer- en derdepartyvereistes effektief oplos sodat jou toepassing nooit meer as een weergawe van 'n biblioteek sal laai nie.
In plaas daarvan om verbruikers te herontplooi, ontplooi onafhanklike kode.
Die ontwikkelaar stel baie belang daarin om immergroen funksionaliteit te hê. Sodra blootgestelde afhanklike funksionaliteit verander het, sal dit nie meer nodig wees om die verbruikers weer te installeer nie.
Ek moet erken dat dit 'n baie kragtige kenmerk op sigself is, een wat noukeurig ondersoek sal moet word om onverwagte uitkomste te voorkom.
Wanneer jy hardloop, voer kode van ander geboue af.
Wanneer ons die NPM-pakketmodel aanneem, kan ons toepassings oorweeg wat Module Federation soortgelyk aan API's gebruik eerder as om kode te deel en aan "biblioteek" te dink.
Op dieselfde manier as wat hulle ook funksionaliteit van ander toepassings kan ontvang, kan webtoepassings nou die funksionaliteit aan ander toepassings verskaf.
Verbeterde ontwikkelaarervaring terwyl die kliëntervaring bewaar word
Enige JavaScript-ontwikkelaar sal redelik gemaklik wees met Module Federation, want dit is 'n Webpack-inprop wat toeganklik is vanaf Webpack weergawe 5.
Dit is eintlik nogal sterk en interessant as ons daaraan dink.
Deur derdeparty Webpack-laaiers te gebruik, oorweeg al die komponente wat webpack bundels, insluitend skrifte, bates, style, prente, afmerkings, en meer.
Deur Module Federation te gebruik, kan al hierdie gedeel en gefedereer word.
Mikro-frontends werk op 'n monolitiese wyse.
Dit is redelik maklik om gedeelde funksionaliteit by jou toepassing te voeg; voer net die bundel soos normaal in of gebruik sinchroniese laai.
Alternatiewelik kan asinchroniese laai gebruik word om slegs afhanklikhede te laai wanneer nodig deur lui laai te gebruik.
Gevolgtrekking
In hierdie pos het ons Module Federation bespreek as 'n fantastiese keuse vir die ontwikkeling van jou mikro-frontend-toepassing.
Deur toepassings toe te laat om funksionaliteit tydens looptyd uit te ruil en te gebruik, moedig dit skaalbaarheid aan deur verskeie spanne in staat te stel om aan onafhanklike toepassings te werk.
Wanneer die algemene funksionaliteit verander, hoef jy nie jou verbruikers te ontwerp en te ontplooi nie, aangesien dit immergroen funksionaliteit ondersteun.
Jou program sal soos 'n monoliet funksioneer nadat dit opgestel is, wat fantasties is.
Deelbare afhanklikhede word gebruik om die grootte van toepassings te verminder. Aangesien baie ontwikkelaars reeds vertroud is met die Webpack-omgewing, is die ontwikkelaarervaring uitstekend.
Lewer Kommentaar