Edukien aurkibidea[Ezkutatu][Erakutsi]
- Beraz, zer da modulu federazioa?
- Zergatik modulu federazioa?
- Moduluaren federazioaren oinarrizko osagaiak
Modulu Federazioaren oinarrizko ezaugarriak+-
- Web errendimendu bikaina
- Garapen eraginkorra
- Auto-sendatzeko eta erredundantziarako gaitasuna
- Mendekotasun arrunten kudeaketa eraginkorra
- Kontsumitzaileak berriro zabaldu behar izan beharrean, zabaldu kode independentea.
- Exekutatzen ari zarenean, inportatu kodea beste konpilazio batzuetatik.
- Garatzaileen esperientzia hobetua bezeroaren esperientzia mantenduz
- Mikro-frontendek modu monolitikoan funtzionatzen dute.
- Ondorioa
Mikro frontend kontzeptuak mikrozerbitzuak aplikatzen ditu frontend garapenean.
Aplikazioa edo webgunea independentean garatutako pieza txikiagoetan zatitzea da, gero exekuzioan zehar konektatzen direnak, monolito bakar eta kohesionatu gisa sortzearen aurka.
Metodoari esker, aplikazioaren beste osagai batzuk sor ditzakezu beste teknologia batzuk erabiliz eta talde independenteekin.
Ideia monolito tipiko bati lotutako mantentze-gastuak murriztea da, garapena horrela segmentatuz.
Aplikazio baten eremu jakin batean talde koherente gisa kontzentratzeko aukera emanez, backend eta frontend garatzaileen arteko lankidetza forma berriak ere posible egiten ditu.
Esate baterako, baliteke bilaketa-gaitasunaren erantzule bakarra den talde bat izatea edo negozio baterako funtsezkoa den funtsezko produktu baten beste alderdi bat.
Modulu federazioari esker, funtzionalitate nahikoa duzu lan-fluxua kudeatzeko mikro frontend aginduetara hurbiltzea.
Argitalpen honek moduluen federazioaren arkitekturari, eta bere ezaugarri nagusiei eta aplikazio-ereduei buruzko azterketa sakona egingo du.
Beraz, zer da a modulu federazioa?
Javascript-en moduluen federazioaren diseinuak aplikazio askotan berrerabilitako piezak erabiltzen ditu.
Nahiko jerga oinarrizkoa da, baina besterik gabe, aizetsu agertzea besterik ez dut egin.
Denok ezagutzen ditugunez React aplikazio baten barruan osagaiak partekatzea, Module Federation-ek eraginkortasunez lortzen du helburu bera praktikan, beste aplikazio batzuek kontsumitzeko aplikazio-moduluak modu dinamikoan erakusten dituena izan ezik.
Modulu Federazioak sistema banatu batean moduluak partekatzeko arazoa gainditu nahi du, partekatutako elementu gako horiek nahi bezala makro edo mikro gisa emanez.
Hori zure aplikazioetatik eta eraikuntza-fluxutik kenduta lortzen da.
Zergatik modulu federazioa?
Hona hemen modulu federazioak erraz kudeatu ditzakeen faktore batzuk:
- Kanpokoak eta DLLak (Dynamic Link Libraries) izan ziren noizean behin aplikazioen artean funtzionalitateak partekatzeko genuen guztia. Horrek guztiak oso zaila egin zuen kodea partekatzea eskalatzea.
- NPM geldoa da.
- Bi programak kode erabakigarria partekatzen dutenean, dinamikoak eta malguak izan behar dute.
Aplikazio autonomoak guztiz bere biltegian egon daitezen, bereizita hedatu eta beren SPA independente gisa funtzionatzeko, Module Federation sortu zen.
Moduluaren federazioaren oinarrizko osagaiak
Sakonago murgildu aurretik, modulu federazioak ekartzen dituen kontzeptu berri batzuk laburki eztabaidatzea garrantzitsua da.
- Ostalaria: orrialde bat kargatzen denean, hasiera batean hasierako eraikuntza edo modulua ostalari deitzen zaio. Hornitzaile bat ostalari gisa har daiteke.
- Urrunekoa: urruneko ostalariaren zati bat erabiltzen duen beste eraikuntza bat da. Bezero gisa ere esaten zaie.
- Norabide biko ostalaria: beste ostalariek kontsumitzen duten urruneko eta urruneko kontsumitzen dituen ostalari gisa funtzionatzen duen Webpack eraikuntza.
- Saltzaileen federazioa: npm moduluaren menpekotasunen deklarazioz partekatutako exekuzio-denbora partekatzea ahalbidetzen du ostalari edo urrunekoentzat, kargatzen diren tokitik edozein dela ere. Modu honetan konpontzen da mikro frontend-en errendimendu arazo nagusietako bat.
Aplikazio federatuaren ereduak
Evergreen Diseinu Sistema
Aplikazio federatuen formarik oinarrizkoenetako bat "urruneko urruneko iraunkorra" da, hau da, "Diseinu-sistema" edo "Osagaien liburutegia" bezalako urruneko partekatua, erabiltzaile guztientzat modu independentean banatu eta eguneratzen dena.
Aplikazio-talde bakoitzak berrikuspenetan denborarik eman behar izan gabe, hori lagungarria izan liteke lineako gune guztiek identitate korporatibo berriena atxikitzen dutela ziurtatzeko.
Eguneratze seguruak eta etengabeak bermatzeko beharrezkoak diren mugak eta prozedurak diseinatzeko eta martxan jartzeko, hau leku erabilgarria izan liteke enpresentzat federatutako aplikazioen arkitektura bat kontuan hartzen hasteko.
Hona hemen modu independentean inplementatutako urruneko partekatutako urruneko gailuak egokiak izan daitezkeen erabilera-kasu batzuk:
- Diseinu sistemak
- Aplikazio maskorrak
- Osagaien liburutegiak
- Kontsumitzaileak
- Partekatutako tresna-tresnak
- Barneko edo kanpokoek erabiltzen dituzten widgeten banaketa eredu alternatiboak
Multi-SPA Modulua Partekatzea
Berrerabili lehendik esportatutako eginbideak, adibidez, osagaiak, orrialde bakarreko aplikazio autonomo desberdinetan. Abantailen artean daude:
- Kontsumitzaileek eguneratze automatizatuak jasotzen dituzte
- Domeinu-esperientzia horretaz arduratzen den taldean geratzen da.
- Inplementazio-prozedura arintzen du, moduluen bertsio bereiziak ez direlako beharrezkoak.
Shell bultzatutako federazioa
Maskorrak bultzatutako federazioak honako hauek dira:
- Produktu-bertsio berri bat sortzean, Produktu-taldeak ez du itxaron Checkout-ek bere lana amaitu arte.
- Urruneko gailuak aldatzean, ez dago orririk birkargatzen.
- Beharrezkoa denean, Shell-ek urruneko karga motela eta (goi mailako) bideraketa eskaintzen ditu.
- Urruneko bidez bideratzea posible da saltzaileen federazioaren bidez, eta horrek maiz erabiltzen diren npm paketeak berrerabiltzea ahalbidetzen du.
- Shell-ek alferrak kargatutako urruneko urrunekoek berrerabiltzen dituzten esparrua eta beste menpekotasun arruntak eskaintzen ditu.
Masko anitzeko federazioa
Goian azaldutako maskor bidezko federazioaren antzekoa, baina maskor desberdinak erabili zituen.
Dauka:
- oskol ugari
- Etiketa zuria
- Urruneko guztiak ez ditu Shell B-k eskatzen edo inplementazio independenteak dituzte.
Modulu Federazioaren oinarrizko ezaugarriak
Web errendimendu bikaina
NPM modulu arruntaren osaeraren arazoa da mendekoen kopurua igo ahala aplikazioaren tamaina orokorrean hazten dela.
Zure aplikazioa kargatzen denean sortak kargatzea saihesteko eta beharrezkoa denean bakarrik kargatzeko, Module Federation-ek sortak nagi kargatzeko aukera eskaintzen dizu.
Honek moduluak benetan behar baino lehen deskargatu beharra ekiditen du, eta horrek gunearen abiadura hobetzen du.
Garapen eraginkorra
Proiektu bakoitza modu isolatuan ekoiztu eta entregatu daiteke eta hainbat taldek egin dezakete, Module Federation-ek zure aplikazioa proiektu diskretuetan antolatzera animatzen zaituelako, bereizita eraiki eta zabaldu ahal izateko (eta, beraz, paraleloan).
Auto-sendatzeko eta erredundantziarako gaitasuna
Partekatutako mendekotasunei esker, Modulu Federation-i zure programaren mendekotasun guztien jarraipena leku bakarrean egin dezake.
Horrela, nahiz eta aplikazio batek menpekotasunik deklaratzen ez duen edo sareko arazoak daudenean, oraindik badaki zer behar duen eta behar den moduan deskargatu ahal izango du.
Mendekotasun arrunten kudeaketa eraginkorra
Gainera, Module Federation-ek menpekotasunen kudeaketa bikaina eskaintzen du, saltzaileen eta hirugarrenen eskakizunak modu eraginkorrean konponduz, zure aplikazioak liburutegi baten bertsio bat baino gehiago kargatu ez dezan.
Kontsumitzaileak berriro zabaldu behar izan beharrean, zabaldu kode independentea.
Garatzaileari oso interesatuta dago betiko funtzionaltasuna izatea. Erakutsitako menpeko funtzionaltasuna aldatu ondoren, ez da beharrezkoa izango kontsumitzaileak berriro instalatzea.
Aitortu behar dut hori berez oso ezaugarri indartsua dela, arretaz aztertu beharko duena ustekabeko emaitzak saihesteko.
Exekutatzen ari zarenean, inportatu kodea beste konpilazio batzuetatik.
NPM pakete-eredua hartzerakoan, Module Federation erabiltzen duten aplikazioak APIen antzekotzat har genitzake kodea partekatu eta "liburutegia" pentsatu beharrean.
Beste aplikazio batzuetatik ere funtzionalitateak jaso ditzaketen modu berean, web aplikazioek beste aplikazio batzuei eman diezaiekete funtzionalitatea.
Garatzaileen esperientzia hobetua bezeroaren esperientzia mantenduz
Edozein JavaScript garatzailea nahiko eroso egongo da Modulu Federation-ekin, Webpack 5. bertsiotik eskuragarri dagoen Webpack plugin bat delako.
Hau benetan indartsua eta intrigazkoa da hausnartzen badugu.
Hirugarrenen Webpack kargatzaileak erabiliz, kontuan hartu osagai guztiak webpack sortak, gidoiak, aktiboak, estiloak, argazkiak, deskontuak eta abar barne.
Modulu Federazioa erabiliz, hauek guztiak partekatu eta federatu daitezke.
Mikro-frontendek modu monolitikoan funtzionatzen dute.
Nahiko erraza da zure aplikazioari partekatutako funtzionalitateak gehitzea; inportatu sorta normal moduan edo erabili karga sinkronikoa.
Bestela, karga asinkronoa beharrezkoa denean bakarrik mendekotasunak kargatzeko erabil daiteke karga alferra erabiliz.
Ondorioa
Argitalpen honetan, Module Federation eztabaidatu dugu zure mikro-frontend aplikazioa garatzeko aukera bikaina dela.
Exekuzio garaian aplikazioei funtzionaltasuna trukatzen eta kontsumitzen uzteak eskalagarritasuna bultzatzen du, hainbat taldek aplikazio independenteetan lan egiteko aukera ematen baitu.
Funtzio arruntak aldatzen direnean, ez dituzu kontsumitzaileak diseinatu eta zabaldu beharko betiko funtzionaltasuna onartzen duelako.
Zure programak monolito bat bezala funtzionatuko du konfiguratu ondoren, eta hori zoragarria da.
Parteka daitezkeen mendekotasunak aplikazioen tamaina murrizteko erabiltzen dira. Garatzaile askok Webpack ingurunea ezagutzen dutenez, garatzaileen esperientzia bikaina da.
Utzi erantzun bat