Enhavtabelo[Kaŝi][Montri]
- Do, kio estas modula federacio?
- Kial modula federacio?
- Modulaj federaciaj kernaj komponantoj
kernaj trajtoj de Modulo Federacio+-
- Bonega TTT-agado
- Efika evoluo
- La kapablo mem-resanigi kaj redundo
- Efika uzado de komunaj dependecoj
- Anstataŭ devi redeploji konsumantojn, deploji sendependan kodon.
- Dum kurado, importu kodon de aliaj konstruoj.
- Plibonigita ellaboranto sperto konservante klientan sperton
- Mikro-frontends funkcias en monolita modo.
- konkludo
La koncepto de mikrofinadoj aplikas mikroservojn al fasado-disvolviĝo.
La ideo estas rompi la aplikaĵon aŭ retejon en pli malgrandajn, sendepende disvolvitajn pecojn, kiuj tiam estas konektitaj dum rultempo, kontraste al kreado de ili kiel ununura, kohezia monolito.
La metodo ebligas al vi krei aliajn komponantojn de la aplikaĵo uzante aliajn teknologiojn kaj kun sendependaj teamoj.
La ideo estas redukti la prizorgajn elspezojn rilatajn al tipa monolito segmentante evoluon tiamaniere.
Permesante al ili koncentriĝi pri aparta areo de aplikaĵo kiel kohera teamo, ĝi ankaŭ ebligas novajn formojn de kunlaboro inter backend kaj fasado devs.
Ekzemple, vi eble havas teamon, kiu respondecas nur pri la serĉkapablo aŭ alia aspekto de ŝlosila produkto, kiu estas decida por komerco.
Danke al la modula federacio, vi havas sufiĉe da funkcieco por trakti la laborfluon, kiun la mikro fasado alirmandatoj.
Ĉi tiu afiŝo profunde rigardos la arkitekturon de la modula federacio, same kiel ĝiajn ĉefajn funkciojn kaj aplikajn ŝablonojn.
Do, kio estas a modulo federacio?
La modula federacia dezajno de Javascript uzas reciklitajn partojn en multaj aplikoj.
Ĝi estas sufiĉe baza ĵargono, sed mi simple ŝajnigis ĝin tiel aspekti briza.
Ĉar ni ĉiuj konas kundividadon de komponantoj ene de React-apliko, Module Federation efektive plenumas la saman celon en la praktiko, kun la escepto, ke ĝi dinamike elmontras aplikajn modulojn por konsumo de aliaj aplikoj.
Modula Federacio serĉas venki la problemon de modula kunhavigo en distribuita sistemo liverante tiujn ŝlosilajn komunajn elementojn kiel makroon aŭ mikron laŭdezire.
Ĉi tio estas plenumita per forigo de ili el viaj programoj kaj la konstrua laborfluo.
Kial modula federacio?
Jen kelkaj faktoroj, kiujn modula federacio povas facile manipuli:
- Eksteruloj kaj DLL-oj (Dynamic Link Libraries) estis ĉio, kion ni foje havis por kunhavigi funkciojn inter programoj. Ĉio el tio igis grimpi koddividon ege malfacila.
- NPM estas malvigla.
- Kiam du apartaj programoj dividas decidan kodon, ili devas esti dinamikaj kaj flekseblaj.
Por ke memstaraj programoj estu tute en sia propra deponejo, deplojiĝas aparte kaj funkcii kiel sia propra sendependa SPA, Module Federation estis kreita.
Modulaj federaciaj kernaj komponantoj
Antaŭ ol plonĝi pli profunde, estas grave diskuti kelkajn novajn konceptojn, kiujn alportas modula federacio.
- Gastiganto: Kiam paĝo ŝarĝas, la konstruo aŭ modulo pravigita komence nomiĝas gastiganto. Provizanto povas esti konsiderata kiel gastiganto.
- Fora: Fora estas malsama konstruo, kiu uzas parton de la gastiganto. Ili ankaŭ estas referitaj kiel klientoj.
- Dudirekta gastiganto: Webpack-konstruaĵo kiu funkcias kiel kaj fora ke aliaj gastigantoj konsumas kaj gastiganto kiu konsumas foras.
- Vendisto-federacio: ebligas deklare kunhavitan rultempodividon de npm-moduldependencoj por gastiganto aŭ malproksima, sendepende de la loko de kiu ili estas ŝarĝitaj. Unu el la ĉefaj agado-problemoj kun mikro-interfadoj estas solvita tiamaniere.
Ŝablonoj de Federacia Apliko
Ĉiamverda Dezajna Sistemo
Unu el la plej bazaj formoj de federaciaj aplikoj estas "ĉiamverda fora", kiu estas kundividita fora kiel "Dezajna Sistemo" aŭ "Komponta biblioteko" kiu estas sendepende distribuita kaj ĝisdatigita por ĉiuj uzantoj.
Sen ke ĉiu aplika teamo devas pasigi tempon por revizioj, ĉi tio povus esti helpema por certigi, ke ĉiuj interretaj retejoj aliĝas al la plej lastatempa kompania identeco.
Por desegni kaj efektivigi la limojn kaj procedurojn necesajn por garantii sekurajn, daŭrajn ĝisdatigojn, ĉi tio povus esti utila loko por entreprenoj por komenci kiam oni konsideras federacian aplikaĵarkitekturon.
Jen kelkaj uzkazoj, kie sendepende deplojitaj komunaj telervojoj povus esti taŭgaj:
- Dezajnaj sistemoj
- Aplikaj ŝeloj
- Komponantaj bibliotekoj
- konsumantoj
- Komunaj ilaro
- Alternativaj distribuaj modeloj por uzaĵoj uzataj de internaj aŭ eksteraj
Multi-SPA Modula Kunhavigo
Reuzu jam eksportitajn funkciojn, kiel komponantojn, en malsamaj memstaraj unupaĝaj programoj. Avantaĝoj inkluzivas:
- Konsumantoj ricevas aŭtomatigitajn ĝisdatigojn
- Domajna kompetenteco restas en la teamo, kiu respondecas pri ĝi.
- Fluliniigas la deplojproceduron ĉar apartaj moduleldonoj ne estas necesaj.
Ŝelo movita federacio
La ŝel-movita federacio inkludas:
- Kreante novan produktan version, la Produkta teamo ne atendas ke la Checkout-teamo kompletigos sian laboron.
- Dum ŝanĝado de telerremoloj, ne estas paĝa reŝargi.
- Kiam necese, Shell ofertas malrapidan foran ŝarĝon kaj (supran nivelon) vojigon.
- Vojigo tra teleremotoj estas ebligita per vendisto-federacio, kiu ebligas la reuzon de ofte uzataj npm-pakaĵoj.
- Ŝelo ofertas la kadron kaj aliajn komunajn dependecojn, kiuj estas reuzataj de la maldiligentaj ŝarĝitaj telervojoj.
Multŝela federacio
Simila al la ŝel-movita federacio priskribita supre, sed uzis malsamajn konkojn.
Ĝi enhavas:
- kelkaj konkoj
- Blanka etikedo
- Ne ĉiuj teleregiloj estas postulataj de Shell B aŭ havas sendependajn efektivigojn.
kernaj trajtoj de Modulo Federacio
Bonega TTT-agado
La problemo kun la normala NPM-modulkonsisto estas ke kiam la nombro da dependantoj pliiĝas, la grandeco de la aplikaĵo ĝenerale kreskas.
Por eviti ŝarĝi pakaĵojn kiam via aplikaĵo ŝarĝas kaj nur ŝarĝi ilin kiam necese, Modula Federacio ofertas al vi la kapablon pigre ŝargi pakaĵojn.
Ĉi tio malhelpas la bezonon elŝuti modulojn antaŭ ol ili estas efektive postulataj, kio plibonigas la rapidecon de la retejo.
Efika evoluo
Ĉiu projekto povas esti produktita kaj liverita izole kaj povas esti efektivigita de diversaj teamoj ĉar Modula Federacio instigas vin organizi vian aplikaĵon en diskretajn projektojn por ke vi povu konstrui kaj disfaldi ilin aparte (kaj do paralele).
La kapablo mem-resanigi kaj redundo
Komunaj dependecoj permesas al Modula Federacio konservi trakon de ĉiuj dependecoj de via programo en unu loko.
Tiel, eĉ kiam aplikaĵo ne deklaras dependecon aŭ kiam estas retaj problemoj, ĝi ankoraŭ scias, kion ĝi bezonas kaj povas elŝuti ĝin laŭbezone.
Efika uzado de komunaj dependecoj
Aldone, Modula Federacio ofertas superan dependecan administradon, efike solvante postulojn de vendistoj kaj triaj por ke via aplikaĵo neniam ŝargos pli ol unu version de biblioteko.
Anstataŭ devi redeploji konsumantojn, deploji sendependan kodon.
La programisto tre interesiĝas pri ĉiamverda funkcieco. Post kiam elmontrita dependa funkcieco ŝanĝiĝis, ne plu necesos reinstali la konsumantojn.
Mi devas konfesi, ke ĉi tio estas tre potenca trajto en si mem, unu kiu bezonos zorgan ekzamenon por malhelpi neatenditajn rezultojn.
Dum kurado, importu kodon de aliaj konstruoj.
Al la adopto de la modelo de pakaĵo NPM, ni povus konsideri aplikaĵojn, kiuj uzas Modulan Federacion kiel API-ojn, prefere ol kunhavigi kodon kaj pensi pri "biblioteko".
En la sama maniero, ke ili ankaŭ povas ricevi funkciecon de aliaj programoj, ret-aplikoj nun povas disponigi la funkciecon al aliaj aplikoj.
Plibonigita ellaboranto sperto konservante klientan sperton
ajna JavaScript-programisto estos sufiĉe komforta kun Modula Federacio ĉar ĝi estas Webpack-kromaĵo kiu estas alirebla ekde Webpack-versio 5.
Ĉi tio fakte estas sufiĉe forta kaj interesa se ni iom pripensas ĝin.
Uzante triajn Webpack-ŝargilojn, konsideru ĉiujn komponantojn Retpakaĵo pakaĵoj, inkluzive de skriptoj, valoraĵoj, stiloj, bildoj, rabatoj kaj pli.
Uzante Modulan Federacion, ĉiuj ĉi povas esti kunhavataj kaj federaciitaj.
Mikro-frontends funkcias en monolita modo.
Estas sufiĉe facile aldoni komunajn funkciojn al via aplikaĵo; simple importu la pakaĵon normale aŭ uzu sinkronan ŝarĝon.
Alternative, nesinkrona ŝarĝo povas esti uzata por nur ŝarĝi dependecojn kiam necese uzante maldiligentan ŝarĝon.
konkludo
En ĉi tiu afiŝo, ni diskutis pri Modula Federacio kiel bonega elekto por disvolvi vian mikro-frontend-aplikaĵon.
Lasi programojn interŝanĝi kaj konsumi funkciojn ĉe rultempo instigas skaleblon ebligante diversajn teamojn labori pri sendependaj aplikoj.
Kiam la komuna funkcieco ŝanĝiĝas, vi ne bezonos desegni kaj deploji viajn konsumantojn ĉar ĝi subtenas ĉiamverdan funkciecon.
Via programo funkcios kiel monolito post kiam ĝi estos instalita, kio estas mirinda.
Kundivideblaj dependecoj estas uzataj por redukti la grandecon de programoj. Ĉar multaj programistoj jam konas la medion Webpack, la sperto de programistoj estas bonega.
Lasi Respondon