Sisukord[Peida][Näita]
- Niisiis, mis on moodulite liit?
- Miks moodulite liit?
- Moodulite ühenduse põhikomponendid
Mooduli föderatsiooni põhifunktsioonid+-
- Suurepärane veebi jõudlus
- Tõhus areng
- Võime ise paraneda ja koondamine
- Tavaliste sõltuvuste tõhus käsitlemine
- Tarbijate uuesti juurutamise asemel juurutage sõltumatu kood.
- Käitamisel importige kood teistest järgudest.
- Täiustatud arendajakogemus, säilitades samal ajal kliendikogemuse
- Mikroliidesed töötavad monoliitselt.
- Järeldus
Mikroliidese kontseptsioon rakendab mikroteenuseid frontendi arendamisel.
Idee on jagada rakendus või veebisait väiksemateks, iseseisvalt arendatud osadeks, mis ühendatakse seejärel käitusajal, mitte luua need ühtse ühtse monoliidina.
Meetod võimaldab luua muid rakenduse komponente teiste tehnoloogiate ja sõltumatute meeskondade abil.
Idee on vähendada tüüpilise monoliidiga seotud hoolduskulusid, segmenteerides selliselt arendust.
Võimaldades neil ühtse meeskonnana keskenduda rakenduse konkreetsele valdkonnale, teeb see võimalikuks ka uued koostöövormid tausta- ja eesprogrammi arendajate vahel.
Näiteks võib teil olla meeskond, kes vastutab ainuisikuliselt otsinguvõimaluste või mõne muu ettevõtte jaoks üliolulise võtmetoote aspekti eest.
Tänu moodulite ühendamisele on teil piisavalt funktsioone töövoo haldamiseks mikroliides lähenemismandaadid.
See postitus heidab põhjaliku ülevaate moodulite liidu arhitektuurist, samuti selle peamistest funktsioonidest ja rakendusmustritest.
Mis on a moodulite liit?
Javascripti moodulite ühendamise disain kasutab paljudes rakendustes taaskasutatud osi.
See on üsna elementaarne kõnepruuk, kuid ma olen lihtsalt muutnud selle selliseks, et see paistaks imelik.
Kuna me kõik oleme tuttavad Reacti rakenduse komponentide jagamisega, saavutab mooduli liitmine praktikas sama eesmärgi, välja arvatud see, et see avaldab rakendusmoodulid dünaamiliselt teiste rakenduste tarbimiseks.
Moodulite liit püüab ületada moodulite jagamise probleemi hajussüsteemis, edastades need peamised jagatud elemendid vastavalt soovile makro- või mikrovormingus.
See saavutatakse nii, et need eemaldatakse teie rakendustest ja koostamise töövoost.
Miks moodulite liit?
Siin on mõned tegurid, millega moodulite liit saab hõlpsasti hakkama.
- Välised ja DLL-id (dünaamiliste linkide teegid) olid kõik, mis meil aeg-ajalt rakenduste vahel funktsioonide jagamiseks oli. Kõik see muutis skaleerimiskoodi jagamise äärmiselt keeruliseks.
- NPM on loid.
- Kui kaks eraldi programmi jagavad olulist koodi, peavad need olema dünaamilised ja paindlikud.
Selleks, et eraldiseisvad rakendused oleksid täielikult oma hoidlas, eraldi juurutatud ja iseseisvad SPA-na toimiksid, loodi mooduli liit.
Moodulite ühenduse põhikomponendid
Enne sügavamale sukeldumist on oluline arutada lühidalt mõnda uut kontseptsiooni, mida moodulite liit toob.
- Host: kui leht laaditakse, nimetatakse algselt lähtestatud järgut või moodulit hostiks. Pakkujat võib pidada hostiks.
- Kaugjuhtimispult: kaugjuhtimispult on erinev konstruktsioon, mis kasutab osa hostist. Neid nimetatakse ka klientideks.
- Kahesuunaline host: veebipaketi järg, mis toimib nii kaugjuhtimispuldina, mida teised hostid kasutavad, kui ka kaugjuhtimispulte tarbiva hostina.
- Tarnija liitmine: võimaldab npm-mooduli sõltuvuste deklaratiivselt jagatud käitusaja jagamist hosti või kaugseadme jaoks, olenemata nende laadimise kohast. Sel viisil lahendatakse üks peamisi mikroliidese jõudlusprobleeme.
Liitrakenduse mustrid
Evergreen disainisüsteem
Üks liitrakenduste põhilisi vorme on "igihaljas kaugjuhtimispult", mis on jagatud kaugjuhtimispult, nagu "disainisüsteem" või "komponentide teek", mida levitatakse ja värskendatakse kõigi kasutajate jaoks iseseisvalt.
Ilma et iga rakenduse meeskond peaks muudatustele aega kulutama, võib see olla kasulik tagamaks, et kõik veebisaidid järgivad uusimat ettevõtte identiteeti.
Turvaliste ja pidevate värskenduste tagamiseks vajalike piirangute ja protseduuride kavandamiseks ja juurutamiseks võib see olla ettevõtete jaoks kasulik koht liitrakendusarhitektuuri kaalumisel.
Järgnevalt on toodud mõned kasutusjuhud, kus iseseisvalt juurutatud jagatud kaugjuhtimispuldid võiksid sobida.
- Disainisüsteemid
- Rakenduskestad
- Komponentide raamatukogud
- Tarbijad
- Jagatud tööriistakomplektid
- Alternatiivsed jaotusmudelid vidinate jaoks, mida kasutavad sisemised või välised
Mitme SPA mooduli jagamine
Kasutage juba eksporditud funktsioone (nt komponente) erinevates eraldiseisvates ühelehelistes rakendustes. Hüvede hulka kuuluvad:
- Tarbijad saavad automaatseid värskendusi
- Domeeniteadmised jäävad selle eest vastutavale meeskonnale.
- Ühtlustab juurutusprotseduuri, kuna eraldi mooduli väljalaske pole vaja.
Shelli juhitud föderatsioon
Shell-driven föderatsioon hõlmab:
- Uue tooteversiooni loomisel ei oota tootetiim, kuni Checkouti meeskond oma töö lõpetab.
- Kaugjuhtimispuldi vahetamisel lehe uuesti laadimist ei toimu.
- Vajadusel pakub Shell aeglast kauglaadimist ja (tipptasemel) marsruutimist.
- Marsruutimine kaugjuhtimispultide vahel on võimalik hankijate ühenduse kaudu, mis võimaldab sageli kasutatavaid npm-pakette uuesti kasutada.
- Shell pakub raamistikku ja muid levinud sõltuvusi, mida laisklaaditud kaugjuhtimispuldid taaskasutavad.
Mitme kesta föderatsioon
Sarnane ülalkirjeldatud kestapõhise föderatsiooniga, kuid kasutas erinevaid kestasid.
See sisaldab:
- hulk kestasid
- Valge märgistus
- Shell B ei nõua kõiki kaugjuhtimispulte ega neil on sõltumatud rakendused.
Mooduli föderatsiooni põhifunktsioonid
Suurepärane veebi jõudlus
Tavalise NPM-mooduli koostise probleem seisneb selles, et ülalpeetavate arvu kasvades kasvab rakenduse suurus üldiselt.
Selleks, et vältida kimpude laadimist rakenduse laadimisel ja laadida neid ainult vajaduse korral, pakub Module Federation teile võimalust kimpe laisalt laadida.
See hoiab ära vajaduse mooduleid alla laadida enne, kui neid tegelikult vaja on, mis parandab saidi kiirust.
Tõhus areng
Iga projekti saab koostada ja tarnida eraldi ning seda saavad läbi viia erinevad meeskonnad, sest mooduli liit julgustab teid korraldama oma rakenduse eraldiseisvateks projektideks, et saaksite neid eraldi (ja seega paralleelselt) luua ja juurutada.
Võime ise paraneda ja koondamine
Jagatud sõltuvused võimaldavad mooduli liitmisel jälgida kõiki teie programmi sõltuvusi ühes kohas.
Nii teab see isegi siis, kui rakendus sõltuvust ei deklareeri või kui esineb võrguprobleeme, ikkagi, mida ta vajab, ja saab selle allalaadimisega hakkama vastavalt vajadusele.
Tavaliste sõltuvuste tõhus käsitlemine
Lisaks pakub Module Federation suurepärast sõltuvushaldust, lahendades tõhusalt tarnija ja kolmanda osapoole nõuded, nii et teie rakendus ei laadi kunagi rohkem kui ühte teegi versiooni.
Tarbijate uuesti juurutamise asemel juurutage sõltumatu kood.
Arendaja on väga huvitatud igihaljast funktsionaalsusest. Kui avatud sõltuvad funktsioonid on muutunud, ei ole tarbijaid enam vaja uuesti installida.
Pean tunnistama, et see on iseenesest väga võimas funktsioon, mis vajab hoolikat uurimist, et vältida ootamatuid tulemusi.
Käitamisel importige kood teistest järgudest.
NPM-i paketimudeli kasutuselevõtmisel võiksime kaaluda rakendusi, mis kasutavad moodulite liitmist API-de sarnaselt, selle asemel, et jagada koodi ja mõelda "teegile".
Samamoodi nagu nad saavad funktsioone ka teistelt rakendustelt, saavad veebirakendused nüüd pakkuda funktsioone ka teistele rakendustele.
Täiustatud arendajakogemus, säilitades samal ajal kliendikogemuse
mistahes JavaScripti arendaja on Module Federationiga üsna mugav, kuna see on Webpacki pistikprogramm, millele on juurdepääs alates Webpacki versioonist 5.
See on tegelikult üsna tugev ja intrigeeriv, kui sellele veidi järele mõelda.
Kasutades kolmandate osapoolte Webpacki laadijaid, võtke arvesse kõiki komponente, mis Veebipakk komplekte, sealhulgas skripte, varasid, stiile, pilte, allahindlusi ja palju muud.
Mooduli liitmist kasutades saab neid kõiki jagada ja liita.
Mikroliidesed töötavad monoliitselt.
Ühisfunktsioonide lisamine rakendusele on üsna lihtne; lihtsalt importige pakett nagu tavaliselt või kasutage sünkroonset laadimist.
Teise võimalusena saab asünkroonset laadimist kasutada ainult sõltuvuste laadimiseks, kui see on vajalik, kasutades laiska laadimist.
Järeldus
Selles postituses oleme arutanud mooduli föderatsiooni kui fantastilist valikut teie mikroliidese rakenduse arendamiseks.
Kui lubate rakendustel käitusajal funktsioone vahetada ja tarbida, siis see soodustab skaleeritavust, võimaldades erinevatel meeskondadel töötada sõltumatute rakendustega.
Kui tavaline funktsionaalsus muutub, ei pea te oma tarbijaid kavandama ja juurutama, kuna see toetab igihaljast funktsionaalsust.
Teie programm töötab pärast seadistamist nagu monoliit, mis on fantastiline.
Jagatavaid sõltuvusi kasutatakse rakenduste suuruse vähendamiseks. Kuna paljud arendajad on Webpacki keskkonnaga juba tuttavad, on arendaja kogemus suurepärane.
Jäta vastus