Table of Contents[Kache][Montre]
- Se konsa, ki sa ki se yon federasyon modil?
- Poukisa modil federasyon?
- Konpozan debaz federasyon modil
Modil Federasyon karakteristik debaz yo+-
- Ekselan pèfòmans entènèt
- Devlopman efikas
- Kapasite nan pwòp tèt ou-geri ak èkse
- Manyen efikas nan depandans komen
- Olye pou yo gen re-deplwaye konsomatè yo, deplwaye kòd endepandan.
- Lè w ap kouri, enpòte kòd ki soti nan lòt bati.
- Eksperyans pwomotè amelyore pandan y ap prezève eksperyans kliyan
- Mikwo-frontends opere nan yon mòd monolitik.
- konklizyon
Konsèp mikwo entèfas aplike mikwosèvis nan devlopman entèfas.
Lide a se kraze aplikasyon an oswa sit entènèt moute nan pi piti, endepandamman devlope moso ki yo Lè sa a, konekte pandan ègzekutabl, kòm opoze a kreye yo kòm yon sèl, limenm monolit.
Metòd la pèmèt ou kreye lòt eleman nan aplikasyon an lè l sèvi avèk lòt teknoloji ak ekip endepandan.
Lide a se diminye depans antretyen ki gen rapò ak yon monolit tipik pa segmentation devlopman nan fason sa a.
Lè yo pèmèt yo konsantre sou yon zòn patikilye nan yon aplikasyon kòm yon ekip aderan, li tou fè nouvo fòm koperasyon ant backend ak entèfas posib.
Pou egzanp, ou ta ka gen yon ekip ki responsab sèlman pou kapasite rechèch la oswa yon lòt aspè nan yon pwodwi kle ki enpòtan pou yon biznis.
Mèsi a federasyon modil la, ou gen ase fonksyonalite pou okipe workflow la mikwo entèfas apwòch manda yo.
Pòs sa a pral pran yon gade pwofon nan achitekti federasyon modil la, ansanm ak karakteristik prensipal li yo ak modèl aplikasyon yo.
Se konsa, ki sa ki yon federasyon modil?
Konsepsyon federasyon modil Javascript la sèvi ak pati ki itilize ankò nan anpil aplikasyon.
Li se jagon jistis debaz, men mwen te jis tou senpleman fè li sanble ke fason yo parèt briz.
Kòm nou tout abitye ak pataje eleman nan yon aplikasyon React, Module Federation efektivman reyalize menm objektif la nan pratik, ak eksepsyon ke li dinamikman ekspoze modil aplikasyon pou konsomasyon pa lòt aplikasyon.
Federasyon Modil ap chèche simonte pwoblèm nan pataje modil nan yon sistèm distribye lè li bay eleman kle pataje sa yo kòm makro oswa mikwo jan yo vle.
Sa a se akonpli lè yo retire yo nan apps ou yo ak workflow la bati.
Poukisa modil federasyon?
Men kèk faktè ke federasyon modil ka jere fasil:
- Eksteryè ak DLLs (Dynamic Link Libraries) se te tout sa nou te genyen detanzantan pou pataje fonksyonalite ant aplikasyon yo. Tout bagay sa yo te fè pataje kòd dekale trè difisil.
- NPM paresseux.
- Lè de pwogram separe pataje kòd enpòtan, yo dwe dinamik ak fleksib.
Nan lòd pou aplikasyon otonòm yo ka totalman nan depo pwòp yo, deplwaye separeman, epi opere kòm pwòp SPA endepandan yo, Federasyon Modil te kreye.
Konpozan debaz federasyon modil
Anvan plonje pi fon, yon ti tan diskite sou kèk nouvo konsèp ke federasyon modil pote enpòtan.
- Lame: Lè yon paj chaje, bati a oswa modil inisyalize okòmansman yo rele yon lame. Yon founisè ka konsidere kòm yon lame.
- Remote: Yon remote se yon konstriksyon diferan ki itilize yon pòsyon nan lame a. Yo refere yo tou kòm kliyan.
- Bi-direksyon lame: yon Webpack bati ki fonksyone kòm tou de yon remote ke lòt lame konsome ak yon lame ki konsome telekomande.
- Federasyon machann: pèmèt pataje egzekitif pataje depandans modil npm pou yon lame oswa aleka, kèlkeswa kote yo chaje yo. Youn nan pi gwo pwoblèm pèfòmans ak mikwo entèfas rezoud nan fason sa a.
Modèl aplikasyon Federated
Sistèm konsepsyon Evergreen
Youn nan fòm aplikasyon federasyon ki pi fondamantal yo se yon "remotan Evergreen", ki se yon telekomandasyon pataje tankou yon "Sistèm Design" oswa "Bibliyotèk Component" ki distribye poukont li epi mete ajou pou tout itilizatè yo.
San yo pa chak ekip app bezwen pase tan sou revizyon, sa ta ka itil nan asire ke tout sit sou entènèt konfòme yo ak idantite antrepriz ki pi resan.
Yo nan lòd yo konsepsyon ak mete an plas limit ak pwosedi ki nesesè yo garanti sekirite, mizajou kontinyèl, sa a ta ka yon kote ki itil pou biznis yo kòmanse lè yo konsidere yon achitekti aplikasyon federasyon.
Men kèk ka itilize kote telekomande pataje poukont deplwaye ta ka yon anfòm apwopriye:
- Sistèm konsepsyon
- Aplikasyon kokiy
- Bibliyotèk konpozan
- Konsomatè
- Kit zouti pataje
- Modèl distribisyon altènatif pou widgets itilize pa entèn oswa ekstèn
Pataje Modil Multi-SPA
Reutilize karakteristik ki deja ekspòte, tankou konpozan, nan diferan aplikasyon otonòm yon sèl paj. Benefis yo enkli:
- Konsomatè yo resevwa mizajou otomatik yo
- Ekspètiz domèn rete nan ekip la ki responsab li.
- Rasyonalize pwosedi deplwaman an paske degaje modil separe pa nesesè.
Shell kondwi federasyon
Federasyon ki baze sou kokiy la gen ladann:
- Lè w ap kreye yon nouvo vèsyon pwodwi, ekip pwodwi a pa tann ekip kesye a fini travay yo.
- Lè chanje telekomande, pa gen okenn rechaje paj.
- Lè sa nesesè, Shell ofri ralanti chajman aleka ak (anwo nivo) routage.
- Wout atravè telekomande se posib atravè federasyon vandè, ki pèmèt reitilize pakè npm yo itilize souvan.
- Shell ofri fondasyon an ak lòt depandans komen ke yo reyitilize pa telekomande yo chaje parese.
Federasyon milti-koki
Menm jan ak federasyon koki-kondwi ki dekri pi wo a, men itilize diferan kokiy.
Li gen ladan:
- yon kantite kokiy
- Blan-etikèt
- Se pa tout telekomande ki obligatwa pa Shell B oswa ki gen aplikasyon endepandan.
Modil Federasyon karakteristik debaz yo
Ekselan pèfòmans entènèt
Pwoblèm nan ak konpozisyon modil NPM nòmal la se ke kòm kantite depandan leve, gwosè aplikasyon an jeneralman ap grandi.
Pou evite chaje pakèt lè aplikasyon w lan chaje epi sèlman chaje yo lè sa nesesè, Module Federation ofri w kapasite pou chaje pakèt parès.
Sa a anpeche nesesite pou telechaje modil yo anvan yo aktyèlman obligatwa, ki amelyore vitès sit la.
Devlopman efikas
Chak pwojè ka pwodwi ak delivre an izolasyon epi yo ka fèt pa divès ekip paske Module Federation ankouraje w òganize aplikasyon w lan an pwojè disrè pou ou ka bati ak deplwaye yo separeman (e pakonsekan an paralèl).
Kapasite nan pwòp tèt ou-geri ak èkse
Depandans pataje pèmèt Module Federation kenbe tras tout depandans pwogram ou an nan yon sèl kote.
Nan fason sa a, menm lè yon aplikasyon pa deklare yon depandans oswa lè gen pwoblèm rezo, li toujou konnen sa li bezwen epi li ka okipe telechaje li jan sa nesesè.
Manyen efikas nan depandans komen
Anplis de sa, Federasyon Modil ofri jesyon depandans siperyè, efektivman rezoud egzijans machann ak twazyèm pati pou aplikasyon w lan p ap janm chaje plis pase yon vèsyon nan yon bibliyotèk.
Olye pou yo gen re-deplwaye konsomatè yo, deplwaye kòd endepandan.
Pwomotè a trè enterese nan gen fonksyonalite Evergreen. Yon fwa yo ekspoze fonksyonalite depandan yo chanje, li pa pral nesesè pou re-enstale konsomatè yo ankò.
Mwen dwe admèt ke sa a se yon karakteristik trè pisan nan ak nan tèt li, youn ki pral bezwen egzamen atansyon pou anpeche rezilta inatandi.
Lè w ap kouri, enpòte kòd ki soti nan lòt bati.
Lè n ap adopte modèl pake NPM a, nou ta ka konsidere aplikasyon ki itilize Module Federation ki sanble ak API olye ke pataje kòd ak panse a "bibliotèk".
Nan menm fason an ke yo ka resevwa tou fonctionnalités nan lòt apps, aplikasyon entènèt kapab kounye a bay fonksyonalite a nan lòt aplikasyon.
Eksperyans pwomotè amelyore pandan y ap prezève eksperyans kliyan
Nenpòt JavaScript pwomotè pral byen konfòtab ak Module Federation paske li se yon plugin Webpack ki aksesib apati Webpack vèsyon 5.
Sa a se aktyèlman olye fò ak entrigan si nou bay li kèk reflechi.
Lè w itilize chajè Webpack twazyèm pati, konsidere tout konpozan sa yo Webpack pakèt, ki gen ladan scripts, byen, estil, foto, rediksyon, ak plis ankò.
Lè w itilize Module Federation, tout bagay sa yo ka pataje ak federasyon.
Mikwo-frontends opere nan yon mòd monolitik.
Li byen fasil pou ajoute fonksyonalite pataje nan aplikasyon w lan; jis enpòte pake a kòm nòmal oswa itilize loading synchrone.
Altènativman, chaj asynchrone ka itilize pou sèlman chaje depandans lè sa nesesè lè w itilize loading parese.
konklizyon
Nan pòs sa a, nou te diskite sou Module Federation kòm yon chwa kokenn pou devlope aplikasyon mikwo-frontend ou a.
Kite aplikasyon yo echanje ak konsome fonksyonalite nan tan exécution ankouraje évolutivité lè yo pèmèt divès ekip yo travay sou aplikasyon endepandan.
Lè fonksyonalite komen an chanje, ou p ap bezwen konsepsyon ak deplwaye konsomatè ou yo paske li sipòte fonksyonalite Evergreen.
Pwogram ou a pral fonksyone tankou yon monolith apre li te mete kanpe, ki se kokenn.
Depandans pataje yo itilize pou diminye gwosè aplikasyon yo. Depi anpil devlopè deja abitye ak anviwònman Webpack la, eksperyans pwomotè a ekselan.
Kite yon Reply