Sisällysluettelo[Piilottaa][Näytä]
- Joten mikä on moduuliliitto?
- Miksi moduuliliitto?
- Moduuliliiton ydinkomponentit
Moduuliliiton ydinominaisuudet+-
- Erinomainen verkkosuorituskyky
- Tehokas kehitys
- Kyky parantaa itseään ja redundanssi
- Yleisten riippuvuuksien tehokas käsittely
- Sen sijaan, että joutuisit käyttämään kuluttajia uudelleen, ota käyttöön itsenäinen koodi.
- Kun käytät, tuo koodi muista koontiversioista.
- Parannettu kehittäjäkokemus säilyttäen samalla asiakaskokemuksen
- Mikrokäyttöliittymät toimivat monoliittisesti.
- Yhteenveto
Mikrokäyttöliittymäkonsepti soveltaa mikropalveluita käyttöliittymän kehittämiseen.
Ajatuksena on hajottaa sovellus tai verkkosivusto pienempiin, itsenäisesti kehitettyihin osiin, jotka sitten yhdistetään ajon aikana, sen sijaan että ne luodaan yhdeksi yhtenäiseksi monoliitiksi.
Menetelmän avulla voit luoda muita sovelluksen komponentteja käyttämällä muita teknologioita ja itsenäisten ryhmien kanssa.
Ajatuksena on vähentää tyypilliseen monoliittiin liittyviä ylläpitokustannuksia segmentoimalla kehitys tällä tavalla.
Antamalla heidän keskittyä tiettyyn sovelluksen alueeseen yhtenäisenä tiiminä, se mahdollistaa myös uudet yhteistyömuodot tausta- ja käyttöliittymäkehittäjien välillä.
Sinulla voi esimerkiksi olla tiimi, joka on yksin vastuussa hakukyvystä tai muusta yritykselle olennaisen tärkeän tuotteen osa-alueesta.
Moduuliliiton ansiosta sinulla on tarpeeksi toimintoja käsitelläksesi työnkulkua mikrokäyttöliittymä lähestymistapa mandaatteja.
Tämä viesti tarkastelee syvällisesti moduuliliiton arkkitehtuuria sekä sen pääominaisuuksia ja sovellusmalleja.
Joten mikä on moduuliliitto?
Javascriptin moduuliliiton suunnittelussa hyödynnetään uudelleen käytettyjä osia monissa sovelluksissa.
Se on melko yksinkertaista jargonia, mutta olen vain saanut sen näyttämään siltä, että se näyttää raikkaalta.
Koska me kaikki tunnemme komponenttien jakamisen React-sovelluksen sisällä, Module Federation saavuttaa käytännössä saman tavoitteen, paitsi että se paljastaa sovellusmoduulit dynaamisesti muiden sovellusten käyttöön.
Moduuliliitto pyrkii voittamaan moduulien jakamisen ongelman hajautetussa järjestelmässä toimittamalla nämä keskeiset jaetut elementit haluttuun makro- tai mikromuotoon.
Tämä saavutetaan poistamalla ne sovelluksistasi ja koontityönkulusta.
Miksi moduuliliitto?
Tässä on joitain tekijöitä, joita moduuliliitto voi käsitellä helposti:
- Ulkoiset ja DLL-kirjastot (Dynamic Link Libraries) olivat kaikki, mitä meillä oli toisinaan toimintojen jakamiseen sovellusten välillä. Kaikki tämä teki skaalauskoodin jakamisesta erittäin haastavaa.
- NPM on hidas.
- Kun kaksi erillistä ohjelmaa jakavat tärkeän koodin, niiden on oltava dynaamisia ja joustavia.
Module Federation luotiin, jotta erilliset sovellukset voisivat olla täysin omassa arkistossaan, ottaa käyttöön erikseen ja toimia omana itsenäisenä SPA:naan.
Moduuliliiton ydinkomponentit
Ennen kuin sukeltaa syvemmälle, on tärkeää keskustella lyhyesti muutamasta moduuliliiton tuomista uusista käsitteistä.
- Isäntä: Kun sivu latautuu, alun perin alustettua rakennetta tai moduulia kutsutaan isänniksi. Palveluntarjoaja voidaan ajatella isäntänä.
- Kaukosäädin: Kaukosäädin on erilainen rakenne, joka käyttää osaa isännästä. Heitä kutsutaan myös asiakkaiksi.
- Kaksisuuntainen isäntä: Webpack-versio, joka toimii sekä kaukosäätimenä, jota muut isännät käyttävät, että isäntänä, joka kuluttaa etälaitteita.
- Toimittajan yhdistäminen: mahdollistaa npm-moduuliriippuvuuksien deklaratiivisen jaetun ajonaikaisen jakamisen isäntä- tai etäkoneelle riippumatta siitä, mistä ne ladataan. Yksi mikrokäyttöliittymän suurimmista suorituskykyongelmista on ratkaistu tällä tavalla.
Yhdistettyjen sovellusten mallit
Evergreen suunnittelujärjestelmä
Yksi hajautettujen sovellusten perusmuodoista on "ikivihreä kaukosäädin", joka on jaettu kaukosäädin, kuten "Design System" tai "komponenttikirjasto", joka on itsenäisesti jaettu ja päivitetty kaikille käyttäjille.
Ilman että jokaisen sovellustiimin tarvitse käyttää aikaa versioiden tekemiseen, tämä saattaa auttaa varmistamaan, että kaikki verkkosivustot noudattavat viimeisintä yritysidentiteettiä.
Jotta voidaan suunnitella ja ottaa käyttöön rajoitukset ja menettelyt, jotka ovat välttämättömiä turvallisten ja jatkuvien päivitysten takaamiseksi, tämä voi olla hyödyllinen paikka yrityksille aloittaa, kun he harkitsevat hajautettua sovellusarkkitehtuuria.
Seuraavassa on joitain käyttötapauksia, joissa itsenäisesti käyttöönotetut jaetut kaukosäätimet saattavat sopia sopivasti:
- Suunnittelujärjestelmät
- Sovelluskuoret
- Komponenttikirjastot
- Kuluttajat
- Jaetut työkalusarjat
- Vaihtoehtoiset jakelumallit sisäisten tai ulkoisten widgeteille
Multi-SPA-moduulin jakaminen
Käytä uudelleen jo vietyjä ominaisuuksia, kuten komponentteja, erilaisissa erillisissä yksisivuisissa sovelluksissa. Edut sisältävät:
- Kuluttajat saavat automaattiset päivitykset
- Domain-osaaminen jää siitä vastuussa olevalle tiimille.
- Virtaviivaistaa käyttöönottomenettelyä, koska erillisiä moduulijulkaisuja ei tarvita.
Shell-vetoinen liitto
Shell-driven liitto sisältää:
- Luodessaan uutta tuoteversiota tuotetiimi ei odota Checkout-tiimin suorittavan työnsä.
- Kaukosäädintä vaihdettaessa sivua ei ladata uudelleen.
- Tarvittaessa Shell tarjoaa hidasta etälatausta ja (ylitason) reititystä.
- Reititys kauko-ohjainten välillä on mahdollista toimittajaliiton kautta, mikä mahdollistaa usein käytettyjen npm-pakettien uudelleenkäytön.
- Shell tarjoaa puitteet ja muita yleisiä riippuvuuksia, joita laiskasti ladatut kaukosäätimet käyttävät uudelleen.
Multi-shell-liitto
Samanlainen kuin yllä kuvattu kuorikäyttöinen liitto, mutta käytti erilaisia kuoria.
Se sisältää:
- useita kuoria
- Valkoinen merkintä
- Shell B ei vaadi kaikkia kaukosäätimiä tai niillä ei ole itsenäisiä toteutuksia.
Moduuliliiton ydinominaisuudet
Erinomainen verkkosuorituskyky
Ongelma normaalissa NPM-moduulikoostumuksessa on, että huollettavien määrän kasvaessa sovelluksen koko yleensä kasvaa.
Module Federation tarjoaa mahdollisuuden ladata nippuja laiskasti, jotta vältytään lataamasta nippuja sovelluksesi latautuessa ja lataamaan ne vain tarvittaessa.
Tämä estää moduulien lataamisen ennen kuin niitä todella tarvitaan, mikä parantaa sivuston nopeutta.
Tehokas kehitys
Jokainen projekti voidaan tuottaa ja toimittaa erillään, ja eri tiimit voivat suorittaa sen, koska Module Federation kannustaa sinua järjestämään sovelluksesi erillisiksi projekteiksi, jotta voit rakentaa ja ottaa ne käyttöön erikseen (ja siten rinnakkain).
Kyky parantaa itseään ja redundanssi
Jaettujen riippuvuuksien avulla Module Federation voi seurata kaikkia ohjelmasi riippuvuuksia yhdessä paikassa.
Tällä tavalla, vaikka sovellus ei ilmoittaisi riippuvuudesta tai verkkoongelmista, se tietää silti mitä se tarvitsee ja pystyy lataamaan sen tarpeen mukaan.
Yleisten riippuvuuksien tehokas käsittely
Lisäksi Module Federation tarjoaa erinomaisen riippuvuuden hallinnan, joka ratkaisee tehokkaasti toimittajan ja kolmannen osapuolen vaatimukset, jotta sovelluksesi ei koskaan lataa useampaa kuin yhtä kirjaston versiota.
Sen sijaan, että joutuisit käyttämään kuluttajia uudelleen, ota käyttöön itsenäinen koodi.
Kehittäjä on erittäin kiinnostunut ikivihreistä toiminnoista. Kun paljastettu riippuvainen toiminnallisuus on muuttunut, kuluttajia ei enää tarvitse asentaa uudelleen.
Minun on myönnettävä, että tämä on sinänsä erittäin voimakas ominaisuus, joka vaatii huolellista tarkastelua odottamattomien tulosten estämiseksi.
Kun käytät, tuo koodi muista koontiversioista.
Kun otamme käyttöön NPM-pakettimallin, saatamme harkita sovelluksia, jotka käyttävät Module Federationia, joka muistuttaa sovellusliittymiä koodin jakamisen ja "kirjaston" ajattelun sijaan.
Samalla tavalla kuin ne voivat vastaanottaa toimintoja muista sovelluksista, verkkosovellukset voivat nyt tarjota toimintoja muille sovelluksille.
Parannettu kehittäjäkokemus säilyttäen samalla asiakaskokemuksen
mitään JavaScript-kehittäjä on melko mukava Module Federationin kanssa, koska se on Webpack-laajennus, joka on käytettävissä Webpack-versiosta 5 alkaen.
Tämä on itse asiassa melko vahva ja kiehtova, jos ajattelemme sitä hieman.
Kun käytät kolmannen osapuolen Webpack-lataajia, ota huomioon kaikki komponentit, jotka webpack nipuja, mukaan lukien skriptit, resurssit, tyylit, kuvat, alennukset ja paljon muuta.
Moduuliliiton avulla nämä kaikki voidaan jakaa ja yhdistää.
Mikrokäyttöliittymät toimivat monoliittisesti.
Jaettujen toimintojen lisääminen sovellukseesi on melko helppoa; tuo vain paketti normaalisti tai käytä synkronista latausta.
Vaihtoehtoisesti asynkronista latausta voidaan käyttää vain riippuvuuksien lataamiseen tarvittaessa käyttämällä laiskalatausta.
Yhteenveto
Tässä viestissä olemme keskustelleet Module Federationista loistavana valintana mikro-frontend-sovelluksesi kehittämiseen.
Sovellusten antaminen vaihtaa ja kuluttaa toimintoja ajon aikana edistää skaalautuvuutta mahdollistamalla eri tiimien työskentelyn itsenäisten sovellusten parissa.
Kun yleinen toiminnallisuus muuttuu, sinun ei tarvitse suunnitella ja ottaa käyttöön kuluttajia, koska se tukee ikivihreitä toimintoja.
Ohjelmasi toimii kuin monoliitti sen jälkeen, kun se on asennettu, mikä on upeaa.
Jaettavia riippuvuuksia käytetään sovellusten koon pienentämiseen. Koska monet kehittäjät tuntevat Webpack-ympäristön jo ennestään, kehittäjäkokemus on erinomainen.
Jätä vastaus