Sadržaj[Sakrij][Prikaži]
- Dakle, šta je modulna federacija?
- Zašto modulna federacija?
- Komponente jezgra federacije modula
Osnovne karakteristike modula Federacije+-
- Odlične web performanse
- Efikasan razvoj
- Sposobnost samoizlječenja i redundancije
- Efikasno rukovanje uobičajenim zavisnostima
- Umjesto ponovnog postavljanja potrošača, implementirajte nezavisni kod.
- Prilikom pokretanja, uvezite kod iz drugih verzija.
- Poboljšano iskustvo programera uz očuvanje korisničkog iskustva
- Mikro-frontendovi rade na monolitan način.
- zaključak
Koncept mikro frontendova primjenjuje mikroservise na razvoj frontenda.
Ideja je da se aplikacija ili web stranica razbije na manje, neovisno razvijene dijelove koji se zatim povezuju tokom rada, umjesto da ih stvaraju kao jedan, kohezivni monolit.
Metoda vam omogućava da kreirate druge komponente aplikacije koristeći druge tehnologije i sa nezavisnim timovima.
Ideja je da se smanje troškovi održavanja vezani za tipičan monolit segmentiranjem razvoja na ovaj način.
Omogućujući im da se koncentrišu na određeno područje aplikacije kao koherentan tim, omogućava i nove oblike saradnje između backend i frontend programera.
Na primjer, možda imate tim koji je isključivo odgovoran za mogućnost pretraživanja ili neki drugi aspekt ključnog proizvoda koji je ključan za poslovanje.
Zahvaljujući udruživanju modula, imate dovoljno funkcionalnosti da upravljate radnim tokom mikro frontend pristup mandatima.
Ovaj post će detaljno pogledati arhitekturu federacije modula, kao i njene glavne karakteristike i obrasce primjene.
Dakle, šta je a modul federacije?
Dizajn federacije Javascript modula koristi ponovo korišćene delove u mnogim aplikacijama.
To je prilično osnovni žargon, ali sam jednostavno napravio da izgleda tako da izgleda prozračno.
Kako smo svi upoznati sa deljenjem komponenti unutar React aplikacije, Module Federation efektivno ostvaruje isti cilj u praksi, sa izuzetkom što dinamički izlaže module aplikacije za upotrebu od strane drugih aplikacija.
Module Federation nastoji da prevaziđe problem dijeljenja modula u distribuiranom sistemu isporukom tih ključnih zajedničkih elemenata kao makro ili mikro po želji.
Ovo se postiže uklanjanjem iz vaših aplikacija i toka rada izrade.
Zašto modulna federacija?
Evo nekoliko faktora s kojima se federacija modula može lako nositi:
- Eksterni i DLL-ovi (Dynamic Link Libraries) bili su sve što smo povremeno imali za dijeljenje funkcionalnosti između aplikacija. Sve je to učinilo skaliranje dijeljenja koda izuzetno izazovnim.
- NPM je spor.
- Kada dva odvojena programa dijele ključni kod, oni moraju biti dinamični i fleksibilni.
Kako bi samostalne aplikacije bile potpuno u svom vlastitom spremištu, odvojeno se implementirale i radile kao vlastiti nezavisni SPA, kreirana je Modul Federation.
Komponente jezgra federacije modula
Prije nego što zaronite dublje, važno je ukratko razgovarati o nekoliko novih koncepata koje donosi federacija modula.
- Host: Kada se stranica učita, inicijalno inicijalizirana izgradnja ili modul naziva se host. Provajder se može smatrati domaćinom.
- Udaljeno: Daljinski upravljač je drugačija konstrukcija koja koristi dio hosta. Oni se takođe nazivaju kupcima.
- Dvosmjerni host: Webpack verzija koja funkcionira i kao daljinski upravljač koji koriste drugi hostovi i kao host koji koristi daljinske upravljače.
- Vendor federacija: omogućava deklarativno dijeljeno dijeljenje ovisnosti npm modula za host ili udaljeno, bez obzira na lokaciju s koje su učitane. Jedan od glavnih problema performansi sa mikro frontendovima je riješen na ovaj način.
Obrasci federalne aplikacije
Evergreen Design System
Jedan od najosnovnijih oblika federalnih aplikacija je „evergreen daljinski“, koji je zajednički daljinski upravljač poput „Dizajn sistema“ ili „Biblioteke komponenti“ koji se nezavisno distribuira i ažurira za sve korisnike.
Bez da svaki tim aplikacija treba da troši vrijeme na revizije, ovo bi moglo biti od pomoći u osiguravanju da se sve internetske stranice pridržavaju najnovijeg korporativnog identiteta.
Kako bi se dizajnirali i postavili ograničenja i procedure neophodne za garantovanje sigurnih, tekućih ažuriranja, ovo bi moglo biti korisno mjesto za kompanije da počnu kada razmatraju arhitekturu federalnih aplikacija.
Slijede neki slučajevi upotrebe u kojima bi nezavisno raspoređeni zajednički daljinski upravljači mogli biti prikladni:
- Sistemi projektovanja
- Aplikacione školjke
- Biblioteke komponenti
- potrošači
- Zajednički alati
- Alternativni modeli distribucije za widgete koje koriste interni ili eksterni
Multi-SPA dijeljenje modula
Ponovo koristite već izvezene funkcije, kao što su komponente, u različitim samostalnim aplikacijama na jednoj stranici. Prednosti uključuju:
- Potrošači dobijaju automatska ažuriranja
- Stručnost u domeni ostaje u timu koji je za to zadužen.
- Pojednostavljuje proceduru postavljanja jer odvojena izdanja modula nisu potrebna.
Shell driven federacija
Shell-driven federacija uključuje:
- Prilikom kreiranja nove verzije proizvoda, tim proizvoda ne čeka da Checkout tim završi svoj posao.
- Prilikom prebacivanja daljinskog upravljača, nema ponovnog učitavanja stranice.
- Kada je potrebno, Shell nudi sporo daljinsko učitavanje i (najviše) rutiranje.
- Rutiranje preko daljinskih upravljača omogućeno je putem federacije dobavljača, što omogućava ponovnu upotrebu često korišćenih npm paketa.
- Shell nudi okvir i druge uobičajene ovisnosti koje ponovno koriste lijeno učitani daljinski upravljači.
Multi-shell federacija
Slično gore opisanoj federaciji vođenoj ljuskom, ali koristi različite ljuske.
Sadrži:
- broj školjki
- Bijelo označavanje
- Nisu svi daljinski upravljači potrebni za Shell B ili imaju nezavisne implementacije.
Osnovne karakteristike modula Federacije
Odlične web performanse
Problem sa normalnom kompozicijom NPM modula je da kako raste broj zavisnih, veličina aplikacije općenito raste.
Kako biste izbjegli učitavanje paketa kada se vaša aplikacija učitava i učitavali ih samo kada je to potrebno, Module Federation vam nudi mogućnost lijenog učitavanja paketa.
Ovo sprječava potrebu za preuzimanjem modula prije nego što su zaista potrebni, što poboljšava brzinu web lokacije.
Efikasan razvoj
Svaki projekat se može proizvesti i isporučiti izolovano i mogu ga izvoditi različiti timovi jer Module Federation vas ohrabruje da organizirate svoju aplikaciju u diskretne projekte tako da ih možete izgraditi i implementirati zasebno (i stoga paralelno).
Sposobnost samoizlječenja i redundancije
Zajedničke ovisnosti omogućavaju Module Federation da prati sve ovisnosti vašeg programa na jednom mjestu.
Na ovaj način, čak i kada aplikacija ne deklarira ovisnost ili kada postoje problemi s mrežom, ona i dalje zna što joj je potrebno i može poduzeti preuzimanje po potrebi.
Efikasno rukovanje uobičajenim zavisnostima
Dodatno, Module Federation nudi superiorno upravljanje ovisnostima, efikasno rješavajući zahtjeve dobavljača i treće strane, tako da vaša aplikacija nikada neće učitati više od jedne verzije biblioteke.
Umjesto ponovnog postavljanja potrošača, implementirajte nezavisni kod.
Programer je jako zainteresiran za zimzelenu funkcionalnost. Jednom kada se izložena zavisna funkcionalnost promijeni, više neće biti potrebno ponovno instalirati potrošače.
Moram priznati da je ovo vrlo moćna karakteristika sama po sebi, ona koju će trebati pažljivo ispitati kako bi se spriječili neočekivani ishodi.
Prilikom pokretanja, uvezite kod iz drugih verzija.
Kada usvajamo model paketa NPM, mogli bismo razmotriti aplikacije koje koriste Module Federation slične API-jima, a ne da dijele kod i razmišljaju o „biblioteci“.
Na isti način na koji također mogu primati funkcionalnost od drugih aplikacija, web aplikacije sada mogu pružiti funkcionalnost drugim aplikacijama.
Poboljšano iskustvo programera uz očuvanje korisničkog iskustva
bilo koji JavaScript programer će biti prilično udoban s Module Federation jer je to dodatak za Webpack koji je dostupan od Webpack verzije 5.
Ovo je zapravo prilično snažno i intrigantno ako malo razmislimo.
Koristeći učitavače Webpack drugih proizvođača, razmotrite sve komponente koje Webpack pakete, uključujući skripte, sredstva, stilove, slike, umanjene vrijednosti i još mnogo toga.
Korištenjem Module Federation, sve ovo se može dijeliti i ujedinjavati.
Mikro-frontendovi rade na monolitan način.
Prilično je lako dodati zajedničku funkcionalnost vašoj aplikaciji; samo uvezite paket kao normalno ili koristite sinhrono učitavanje.
Alternativno, asinkrono učitavanje se može koristiti samo za učitavanje ovisnosti kada je to potrebno korištenjem lijenog učitavanja.
zaključak
U ovom postu smo raspravljali o Module Federation kao fantastičnom izboru za razvoj vaše mikro-frontend aplikacije.
Omogućavanje aplikacijama da razmjenjuju i koriste funkcionalnost tokom vremena rada podstiče skalabilnost omogućavajući različitim timovima da rade na nezavisnim aplikacijama.
Kada se uobičajena funkcionalnost promijeni, nećete morati dizajnirati i implementirati svoje potrošače jer podržava zimzelenu funkcionalnost.
Vaš program će funkcionisati kao monolit nakon što je postavljen, što je fantastično.
Zavisnosti koje se mogu dijeliti koriste se za smanjenje veličine aplikacija. Budući da su mnogi programeri već upoznati sa Webpack okruženjem, iskustvo programera je odlično.
Ostavite odgovor