Мундариҷа[Пинҳон кардан][Намоиш]
- Пас, федератсияи модул чист?
- Чаро федератсияи модулҳо?
- Ҷузъҳои асосии федератсияи модул
Хусусиятҳои асосии Федератсияи модул+- ба
- Иҷрои аълои веб
- Инкишофи самаранок
- Қобилияти худтанзимкунӣ ва зиёдатӣ
- Муносибати самараноки вобастагии умумӣ
- Ба ҷои он ки истеъмолкунандагонро дубора ҷойгир кунед, рамзи мустақилро ҷойгир кунед.
- Ҳангоми кор кардан, кодро аз дигар сохтмонҳо ворид кунед.
- Таҷрибаи мукаммали таҳиякунанда ҳангоми нигоҳ доштани таҷрибаи муштарӣ
- Микрофронтҳо ба таври монолитӣ кор мекунанд.
- хулоса
Консепсияи micro frontends микросервисҳоро барои таҳияи фронтенд истифода мебарад.
Идеяи он аст, ки барнома ё вебсайтро ба қисмҳои хурдтари мустақил таҳияшуда, ки баъдан дар вақти кор пайваст мешаванд, ба ҷои эҷоди онҳо ҳамчун як монолити ягона ва ҳамбаста.
Ин усул ба шумо имкон медиҳад, ки ҷузъҳои дигари барномаро бо истифода аз технологияҳои дигар ва бо гурӯҳҳои мустақил эҷод кунед.
Идеяи он аст, ки хароҷоти нигоҳдории марбут ба монолитҳои маъмулӣ тавассути тақсимоти рушд бо ин роҳ кам карда шавад.
Ба онҳо имкон медиҳад, ки ба як минтақаи мушаххаси барнома тамаркуз кунанд, ҳамчун як гурӯҳи ҳамоҳангшуда, он инчунин шаклҳои нави ҳамкориро байни таҳиягарони пуштибон ва фронтенд имконпазир месозад.
Масалан, шумо метавонед як гурӯҳе дошта бошед, ки танҳо барои қобилияти ҷустуҷӯ ё ҷанбаи дигари маҳсулоти калидӣ, ки барои тиҷорат муҳим аст, масъул аст.
Бо шарофати федератсияи модулҳо, шумо қобилияти кофӣ доред, то ҷараёни кориро идора кунед фронти хурд мандатҳои муносибат.
Ин паём ба меъмории федератсияи модулҳо, инчунин хусусиятҳои асосӣ ва намунаҳои татбиқи он назар мекунад.
Пас, чӣ аст федератсияи модул?
Тарҳрезии федератсияи модули Javascript қисмҳои аз нав истифодашударо дар бисёр барномаҳо истифода мебарад.
Ин жаргон хеле оддӣ аст, аммо ман танҳо ба назар чунин менамудам, ки бодиққат ба назар мерасад.
Азбаски мо ҳама бо мубодилаи ҷузъҳо дар дохили замимаи React шинос ҳастем, Федератсияи Модул ҳамон як ҳадафро дар амал ба таври муассир амалӣ мекунад, ба истиснои он, ки он модулҳои барномаро барои истеъмоли дигар замимаҳо динамикӣ фош мекунад.
Федератсияи Модулҳо кӯшиш мекунад, ки мушкилоти мубодилаи модулҳоро дар системаи тақсимшуда тавассути расонидани он унсурҳои асосии муштарак ҳамчун макро ё микро мувофиқи дилхоҳ бартараф кунад.
Ин тавассути нест кардани онҳо аз барномаҳои шумо ва ҷараёни кории сохтмон анҷом дода мешавад.
Чаро федератсияи модулҳо?
Инҳоянд баъзе омилҳое, ки федератсияи модул ба осонӣ ҳал карда метавонад:
- Берунӣ ва DLLs (Китобхонаҳои Dynamic Link Libraries) он чизе буд, ки мо баъзан барои мубодилаи функсияҳо байни барномаҳо доштем. Ҳамаи ин мубодилаи коди миқёсро хеле душвор гардонд.
- NPM суст аст.
- Вақте ки ду барномаи алоҳида рамзи муҳимро мубодила мекунанд, онҳо бояд динамикӣ ва чандир бошанд.
Барои он ки барномаҳои мустақил комилан дар анбори худ бошанд, алоҳида ҷойгир карда шаванд ва ҳамчун SPA мустақили худ кор кунанд, Федератсияи Модулҳо таъсис дода шуд.
Ҷузъҳои асосии федератсияи модул
Пеш аз ғарқ шудан, ба таври мухтасар муҳокима кардани чанд консепсияи нав, ки федератсияи модул меорад, муҳим аст.
- Хост: Вақте ки саҳифа бор мекунад, сохтмон ё модули ибтидоӣ ҳост номида мешавад. Провайдерро метавон ҳамчун мизбон ҳисоб кард.
- дурдаст: дурдаст як сохтори гуногун аст, ки як қисми ҳост истифода мебарад. Онҳо инчунин ҳамчун муштариён номида мешаванд.
- Хости дуҷониба: Сохтмони Webpack, ки ҳам ҳамчун дурдаст, ки ҳостҳои дигар истеъмол мекунанд ва ҳам хосте, ки дурдастҳоро истеъмол мекунанд, кор мекунад.
- Федератсияи фурӯшандагон: имкон медиҳад, ки мубодилаи декларативии вақти корӣ вобастагии модули npm барои ҳост ё дурдаст, новобаста аз маконе, ки онҳо аз он ҷо бор карда шудаанд, имкон медиҳад. Яке аз мушкилоти асосии иҷроиш бо фронтҳои микро бо ҳамин роҳ ҳал карда мешавад.
Намунаҳои аризаи федератсия
Системаи тарҳрезии ҳамешасабз
Яке аз шаклҳои асосии замимаҳои федератсия ин “дурдаст ҳамешасабз” мебошад, ки дурдасти муштарак ба монанди “Системаи тарҳрезӣ” ё “Китобхонаи ҷузъӣ” мебошад, ки барои ҳама корбарон мустақилона тақсим ва нав карда мешавад.
Бидуни ҳар як дастаи барнома барои ислоҳот вақт сарф кардан лозим нест, ин метавонад барои кафолат додани он, ки ҳама сайтҳои онлайн ба шахсияти охирини корпоративӣ мувофиқат кунанд, муфид бошад.
Барои тарҳрезӣ ва ҷорӣ кардани маҳдудиятҳо ва расмиёти зарурӣ барои кафолат додани навсозиҳои бехатар ва ҷорӣ, ин метавонад як ҷои муфид барои тиҷорат ҳангоми баррасии меъмории федератсияи барномаҳо бошад.
Инҳоянд баъзе ҳолатҳои истифода, ки дурдастҳои муштараки мустақил ҷойгиршуда метавонанд мувофиқ бошанд:
- Системаҳои тарҳрезӣ
- Қабатҳои барнома
- Китобхонаҳои компонентӣ
- Истеъмолкунандагон
- Маҷмӯаҳои муштарак
- Моделҳои тақсимоти алтернативӣ барои виджетҳое, ки аз ҷониби дохилӣ ё беруна истифода мешаванд
Мубодилаи модули бисёрсолаи SPA
Хусусиятҳои аллакай содиршуда, аз қабили ҷузъҳо, дар барномаҳои алоҳидаи яксаҳифаи алоҳида аз нав истифода баред. Манфиатҳо дар бар мегиранд:
- Истеъмолкунандагон навсозиҳои автоматиро мегиранд
- Таҷрибаи домен дар гурӯҳе боқӣ мемонад, ки ба он масъул аст.
- Тартиби ҷобаҷокуниро осон мекунад, зеро барориши модулҳои алоҳида лозим нест.
Федератсия аз ҷониби Shell
Ба федератсияи аз ҷониби ҷабҳа асосёфта дохил мешаванд:
- Ҳангоми эҷоди версияи нави маҳсулот, дастаи Маҳсулот интизор нест, ки дастаи Checkout кори худро анҷом диҳад.
- Ҳангоми иваз кардани дурдастҳо, дубора боркунии саҳифа вуҷуд надорад.
- Ҳангоми зарурат, Shell боркунии сусти дурдаст ва (сатҳи боло) масирро пешниҳод мекунад.
- Масир дар байни дурдастҳо тавассути федератсияи фурӯшанда имконпазир аст, ки имкон медиҳад аз нав истифода бурдани бастаҳои зуд-зуд истифодашавандаи npm.
- Shell чаҳорчӯба ва дигар вобастагии умумиро пешниҳод мекунад, ки аз ҷониби дурдастҳои боркаши танбал дубора истифода мешаванд.
Федератсияи бисёрҷониба
Монанд ба федератсия бо ниҳонӣ ронда дар боло тавсиф, вале истифода снарядҳои гуногун.
Он дорои:
- як катор снарядхо
- Нишони сафед
- На ҳама дурдастҳо аз ҷониби Shell B талаб карда мешаванд ё татбиқи мустақил доранд.
Хусусиятҳои асосии Федератсияи модул
Иҷрои аълои веб
Мушкилот бо таркиби муқаррарии модули NPM дар он аст, ки бо зиёд шудани шумораи вобастагон, андозаи барнома умуман калон мешавад.
Барои пешгирӣ кардани боркунии бастаҳо ҳангоми боркунии замимаи шумо ва танҳо дар ҳолати зарурӣ онҳоро бор кунед, Федератсияи Модул ба шумо қобилияти бор кардани бастаҳоро пешниҳод мекунад.
Ин зарурати зеркашии модулҳоро пеш аз он ки онҳо воқеан талаб карда шаванд, пешгирӣ мекунад, ки суръати сайтро беҳтар мекунад.
Инкишофи самаранок
Ҳар як лоиҳаро дар алоҳидагӣ истеҳсол ва расонидан мумкин аст ва онҳоро дастаҳои гуногун иҷро кардан мумкин аст, зеро Федератсияи Модулҳо шуморо ташвиқ мекунад, ки аризаи худро дар лоиҳаҳои дискретӣ ташкил кунед, то шумо метавонед онҳоро алоҳида сохта ва ҷойгир кунед (ва аз ин рӯ дар баробари).
Қобилияти худтанзимкунӣ ва зиёдатӣ
Вобастагии муштарак ба Федератсияи Модул имкон медиҳад, ки ҳамаи вобастагии барномаи шуморо дар як ҷо пайгирӣ кунад.
Бо ин роҳ, ҳатто вақте ки барнома вобастагӣ эълон намекунад ё мушкилоти шабакавӣ вуҷуд дорад, он ҳанӯз ҳам медонад, ки ба чӣ ниёз дорад ва ҳангоми зарурат метавонад зеркашии онро ҳал кунад.
Муносибати самараноки вобастагии умумӣ
Илова бар ин, Федератсияи Модулҳо идоракунии волоияти вобастагиро пешниҳод мекунад, ки талаботи фурӯшанда ва тарафи сеюмро самаранок ҳал мекунад, то барномаи шумо ҳеҷ гоҳ зиёда аз як версияи китобхонаро бор накунад.
Ба ҷои он ки истеъмолкунандагонро дубора ҷойгир кунед, рамзи мустақилро ҷойгир кунед.
Таҳиягар ба доштани функсияҳои ҳамешасабз таваҷҷӯҳи зиёд дорад. Пас аз тағир додани функсияи вобастагии ошкоршуда, дигар аз нав насб кардани истеъмолкунандагон лозим нест.
Ман бояд иқрор шавам, ки ин як хусусияти хеле пурқувват аст, ки барои пешгирии оқибатҳои ғайричашмдошт ба ташхиси дақиқ ниёз дорад.
Ҳангоми кор кардан, кодро аз дигар сохтмонҳо ворид кунед.
Ҳангоми қабули модели бастаи NPM, мо метавонем барномаҳоеро баррасӣ кунем, ки Федератсияи Модулҳоро ба APIҳо монанд истифода мебаранд, на мубодилаи код ва фикри "китобхона".
Ба ҳамон тарзе, ки онҳо метавонанд аз дигар барномаҳо функсияҳо гиранд, замимаҳои веб акнун метавонанд ин корро ба дигар замимаҳо таъмин кунанд.
Таҷрибаи мукаммали таҳиякунанда ҳангоми нигоҳ доштани таҷрибаи муштарӣ
ҳар як Таҳиягари JavaScript бо Федератсияи Модулҳо хеле бароҳат хоҳад буд, зеро он як плагини Webpack аст, ки аз версияи Webpack 5 дастрас аст.
Ин воқеан хеле қавӣ ва ҷолиб аст, агар мо дар ин бора каме фикр кунем.
Бо истифода аз боркунакҳои тарафи сеюм Webpack, ҳамаи ҷузъҳои онро баррасӣ кунед Веб-саҳифа бастаҳо, аз ҷумла скриптҳо, дороиҳо, услубҳо, тасвирҳо, қайдҳо ва ғайра.
Бо истифода аз Федератсияи модул, ҳамаи инҳоро метавон муштарак ва федератсия кард.
Микрофронтҳо ба таври монолитӣ кор мекунанд.
Илова кардани функсияҳои муштарак ба замимаи шумо хеле осон аст; танҳо бастаро ҳамчун муқаррарӣ ворид кунед ё боркунии синхронӣ истифода баред.
Интихобан, боркунии асинхронӣ метавонад танҳо барои бор кардани вобастагӣ дар ҳолати зарурӣ бо истифода аз боркунии танбал истифода шавад.
хулоса
Дар ин паём, мо Федератсияи Модулҳоро ҳамчун интихоби афсонавӣ барои таҳияи замимаи micro-frontend баррасӣ кардем.
Иҷозат додани барномаҳо дар вақти корӣ мубодила ва истеъмоли функсияҳоро тавассути имкон додани гурӯҳҳои гуногун барои кор дар барномаҳои мустақил ташвиқ мекунад.
Вақте ки функсияи умумӣ тағир меёбад, ба шумо лозим нест, ки истеъмолкунандагони худро тарроҳӣ ва ҷойгир кунед, зеро он функсияҳои ҳамешасабзро дастгирӣ мекунад.
Барномаи шумо пас аз насб кардани он ҳамчун як монолит кор хоҳад кард, ки ин афсонавӣ аст.
Вобастагии муштарак барои кам кардани андозаи барномаҳо истифода мешавад. Азбаски бисёре аз таҳиягарон аллакай бо муҳити Webpack шиносанд, таҷрибаи таҳиягарон аъло аст.
Дин ва мазҳаб