Змест[Схаваць][Паказаць]
- Такім чынам, што такое модульная федэрацыя?
- Чаму модульная федэрацыя?
- Асноўныя кампаненты аб'яднання модуляў
Асноўныя функцыі Module Federation+-
- Выдатная вэб-прадукцыйнасць
- Эфектыўнае развіццё
- Здольнасць да самааднаўлення і празмернасць
- Эфектыўная апрацоўка агульных залежнасцей
- Замест неабходнасці паўторнага разгортвання спажыўцоў, разгарніце незалежны код.
- Пры запуску імпартуйце код з іншых зборак.
- Палепшаны вопыт распрацоўшчыка пры захаванні кліенцкага вопыту
- Мікрафронтэнды працуюць маналітна.
- заключэнне
Канцэпцыя мікра інтэрфейсаў прымяняе мікрасэрвісы да распрацоўкі інтэрфейсу.
Ідэя складаецца ў тым, каб разбіць прыкладанне або вэб-сайт на больш дробныя, незалежна распрацаваныя часткі, якія потым злучаюцца падчас выканання, а не ствараць іх як адзіны згуртаваны маналіт.
Метад дазваляе ствараць іншыя кампаненты прыкладання з выкарыстаннем іншых тэхналогій і з незалежнымі камандамі.
Ідэя заключаецца ў тым, каб скараціць выдаткі на тэхнічнае абслугоўванне тыповага маналіту шляхам сегментацыі развіцця такім чынам.
Дазваляючы ім засяродзіцца на пэўнай вобласці прыкладання ў якасці цэласнай каманды, гэта таксама робіць магчымымі новыя формы супрацоўніцтва паміж распрацоўшчыкамі бэкэнда і інтэрфейсу.
Напрыклад, у вас можа быць каманда, якая нясе выключную адказнасць за магчымасць пошуку або іншы аспект ключавога прадукту, які мае вырашальнае значэнне для бізнесу.
Дзякуючы аб'яднанню модуляў у вас ёсць дастаткова функцый для апрацоўкі працоўнага працэсу мікра інтэрфейс падысці да мандатаў.
У гэтай публікацыі будзе падрабязна разгледжана архітэктура аб'яднання модуляў, а таксама яе асноўныя функцыі і шаблоны прымянення.
Такім чынам, што такое модуль федэрацыі?
Дызайн аб'яднання модуляў Javascript выкарыстоўвае паўторна выкарыстаныя часткі ў многіх праграмах.
Гэта даволі элементарны жаргон, але я проста зрабіў гэта так, каб выглядаць вясёлым.
Паколькі мы ўсе знаёмыя з сумесным выкарыстаннем кампанентаў у дадатку React, Module Federation эфектыўна дасягае той жа мэты на практыцы, за выключэннем таго, што ён дынамічна паказвае модулі прыкладання для выкарыстання іншымі праграмамі.
Module Federation імкнецца пераадолець праблему сумеснага выкарыстання модуляў у размеркаванай сістэме, дастаўляючы гэтыя ключавыя агульныя элементы ў выглядзе макра- або мікра-па жаданні.
Гэта дасягаецца шляхам іх выдалення з вашых праграм і працоўнага працэсу зборкі.
Чаму модульная федэрацыя?
Вось некалькі фактараў, з якімі модульная федэрацыя можа лёгка справіцца:
- Знешнія файлы і DLL (Dynamic Link Library) - гэта ўсё, што мы час ад часу мелі для абмену функцыямі паміж праграмамі. Усё гэта зрабіла абмен кодам маштабавання надзвычай складаным.
- НПМ млявая.
- Калі дзве асобныя праграмы выкарыстоўваюць важны код, яны павінны быць дынамічнымі і гнуткімі.
Для таго, каб аўтаномныя праграмы цалкам знаходзіліся ў сваім уласным сховішчы, разгортваліся асобна і працавалі як уласны незалежны SPA, быў створаны Module Federation.
Асноўныя кампаненты аб'яднання модуляў
Перш чым пагрузіцца глыбей, важна коратка абмеркаваць некалькі новых канцэпцый, якія прыносіць модульная федэрацыя.
- Хост: калі старонка загружаецца, першапачаткова ініцыялізаваная зборка або модуль называецца хостам. Правайдэра можна разглядаць як хоста.
- Пульт дыстанцыйнага кіравання: пульт дыстанцыйнага кіравання - гэта іншая канструкцыя, якая выкарыстоўвае частку хаста. Іх таксама называюць кліентамі.
- Двунакіраваны хост: зборка Webpack, якая функцыянуе і як аддалены, які выкарыстоўваюць іншыя хасты, і як хост, які спажывае пульты.
- Федэрацыя пастаўшчыка: уключае дэкларатыўнае сумеснае выкарыстанне падчас выканання залежнасцей модуля npm для хаста або аддаленага прылады, незалежна ад месца, з якога яны загружаны. Такім чынам вырашана адна з асноўных праблем з прадукцыйнасцю мікрафрантальных праграм.
Шаблоны федэратыўнага прымянення
Сістэма Evergreen Design
Адной з самых асноўных формаў аб'яднаных прыкладанняў з'яўляецца «вечназялёны пульт дыстанцыйнага кіравання», які ўяўляе сабой агульны пульт, напрыклад «Сістэма праектавання» або «Бібліятэка кампанентаў», якая незалежна распаўсюджваецца і абнаўляецца для ўсіх карыстальнікаў.
Без неабходнасці марнаваць час на перагляд кожнай праграме, гэта можа быць карысным для таго, каб усе інтэрнэт-сайты прытрымліваліся найноўшага фірмовага стылю.
Каб распрацаваць і ўвесці ў дзеянне абмежаванні і працэдуры, неабходныя для гарантавання бяспечных пастаянных абнаўленняў, гэта можа быць карысным месцам для прадпрыемстваў, калі яны разглядаюць архітэктуру аб'яднаных прыкладанняў.
Ніжэй прыведзены некаторыя выпадкі выкарыстання, калі незалежна разгорнутыя агульныя пульты дыстанцыйнага кіравання могуць падысці:
- Сістэмы праектавання
- Абалонкі прыкладанняў
- Бібліятэкі кампанентаў
- Спажыўцы
- Агульныя наборы інструментаў
- Альтэрнатыўныя мадэлі размеркавання для віджэтаў, якія выкарыстоўваюцца ўнутранымі або знешнімі
Сумеснае выкарыстанне модуля Multi-SPA
Паўторна выкарыстоўвайце ўжо экспартаваныя функцыі, такія як кампаненты, у розных аўтаномных аднастаронкавых праграмах. Перавагі ўключаюць:
- Спажыўцы атрымліваюць аўтаматызаваныя абнаўленні
- Экспертыза ў дамене застаецца за камандай, якая за гэта адказвае.
- Аптымізуе працэдуру разгортвання, таму што асобныя выпускі модуляў не патрэбныя.
Федэрацыя, якая кіруецца абалонкай
Федэрацыя, якая кіруецца абалонкай, уключае:
- Пры стварэнні новай версіі прадукту каманда прадукту не чакае, пакуль каманда Checkout завершыць сваю працу.
- Пры пераключэнні пультаў перазагрузка старонкі не адбываецца.
- Пры неабходнасці Shell прапануе павольную аддаленую загрузку і (верхняга ўзроўню) маршрутызацыю.
- Маршрутызацыя праз пульты дыстанцыйнага кіравання стала магчымай праз федэрацыю пастаўшчыкоў, якая дазваляе паўторна выкарыстоўваць пакеты npm, якія часта выкарыстоўваюцца.
- Shell прапануе структуру і іншыя агульныя залежнасці, якія паўторна выкарыстоўваюцца ляніва загружанымі пультамі.
Шматслойная федэрацыя
Падобна апісанай вышэй федэрацыі, кіраванай абалонкай, але выкарыстоўваліся іншыя абалонкі.
Ён змяшчае:
- шэраг ракавін
- Белая этыкетка
- Не ўсе пульты дыстанцыйнага кіравання патрабуюцца Shell B або маюць незалежныя рэалізацыі.
Асноўныя функцыі Module Federation
Выдатная вэб-прадукцыйнасць
Праблема са звычайным складам модуля NPM заключаецца ў тым, што па меры павелічэння колькасці ўтрыманцаў звычайна расце памер прыкладання.
Каб пазбегнуць загрузкі пакетаў пры загрузцы вашага прыкладання і загружаць іх толькі пры неабходнасці, Module Federation прапануе вам магчымасць лянівай загрузкі пакетаў.
Гэта пазбаўляе ад неабходнасці спампоўваць модулі да таго, як яны сапраўды спатрэбяцца, што павышае хуткасць сайта.
Эфектыўнае развіццё
Кожны праект можа быць створаны і пастаўлены асобна і можа выконвацца рознымі камандамі, таму што Module Federation заклікае вас арганізаваць сваё прыкладанне ў асобныя праекты, каб вы маглі ствараць і разгортваць іх асобна (і, такім чынам, паралельна).
Здольнасць да самааднаўлення і празмернасць
Агульныя залежнасці дазваляюць Module Federation адсочваць усе залежнасці вашай праграмы ў адным месцы.
Такім чынам, нават калі прыкладанне не абвяшчае залежнасць або калі ёсць праблемы з сеткай, яно ўсё роўна ведае, што яму трэба, і можа апрацоўваць загрузку па меры неабходнасці.
Эфектыўная апрацоўка агульных залежнасцей
Акрамя таго, Module Federation прапануе лепшае кіраванне залежнасцямі, эфектыўна вырашаючы патрабаванні пастаўшчыкоў і іншых вытворцаў, так што ваша прыкладанне ніколі не будзе загружаць больш за адну версію бібліятэкі.
Замест неабходнасці паўторнага разгортвання спажыўцоў, разгарніце незалежны код.
Распрацоўшчык вельмі зацікаўлены ў вечназялёнай функцыянальнасці. Пасля змены адкрытай залежнай функцыянальнасці больш не трэба будзе пераўсталёўваць спажыўцы.
Я павінен прызнаць, што гэта сама па сабе вельмі магутная функцыя, якую трэба ўважліва вывучыць, каб прадухіліць нечаканыя вынікі.
Пры запуску імпартуйце код з іншых зборак.
Прымаючы мадэль пакета NPM, мы маглі б разгледзець прыкладанні, якія выкарыстоўваюць Module Federation, падобныя на API, а не абагульваць код і думаць пра «бібліятэку».
Такім жа чынам, як яны могуць атрымліваць функцыянальныя магчымасці ад іншых праграм, вэб-праграмы цяпер могуць прадастаўляць гэтыя функцыі іншым праграмам.
Палепшаны вопыт распрацоўшчыка пры захаванні кліенцкага вопыту
Любы Распрацоўшчык JavaScript будзе даволі зручна з Module Federation, таму што гэта плагін Webpack, які даступны з версіі Webpack 5.
Гэта на самай справе даволі моцнае і інтрыгуючае, калі мы крыху падумаем.
Выкарыстоўваючы староннія загрузчыкі Webpack, улічвайце ўсе кампаненты, якія Вэб-пакет пакеты, уключаючы скрыпты, актывы, стылі, выявы, уцэнкі і многае іншае.
Выкарыстоўваючы Module Federation, усё гэта можна абагуліць і аб'яднаць.
Мікрафронтэнды працуюць маналітна.
Гэта даволі лёгка дадаць агульную функцыянальнасць да вашага прыкладання; проста імпартуйце пакет як звычайна або выкарыстоўвайце сінхронную загрузку.
У якасці альтэрнатывы можна выкарыстоўваць асінхронную загрузку толькі для загрузкі залежнасцяў, калі гэта неабходна, з дапамогай адкладзенай загрузкі.
заключэнне
У гэтай публікацыі мы абмеркавалі Module Federation як фантастычны выбар для распрацоўкі вашага мікрафрантальнага прыкладання.
Дазвол прыкладанням абменьвацца і выкарыстоўваць функцыі падчас выканання спрыяе маштабаванасці, дазваляючы розным камандам працаваць над незалежнымі праграмамі.
Калі агульныя функцыі зменяцца, вам не трэба будзе распрацоўваць і разгортваць сваіх спажыўцоў, паколькі яны падтрымліваюць вечназялёныя функцыі.
Пасля наладжвання ваша праграма будзе функцыянаваць як маналіт, і гэта фантастычна.
Сумесныя залежнасці выкарыстоўваюцца для памяншэння памеру праграм. Паколькі многія распрацоўшчыкі ўжо знаёмыя з асяроддзем Webpack, вопыт распрацоўшчыкаў выдатны.
Пакінуць каментар