Мазмуну[Жашыруу][Көрсөтүү]
- Ошентип, модулдук федерация деген эмне?
- Эмне үчүн модулдук федерация?
- Модуль федерациясынын негизги компоненттери
Module Federation негизги өзгөчөлүктөрү+-
- Мыкты веб аткаруу
- Натыйжалуу өнүктүрүү
- өзүн-өзү айыктыруу жана ашыкча жөндөмдүүлүгү
- Жалпы көз карандылыктарды эффективдүү башкаруу
- Керектөөчүлөрдү кайра жайгаштыруунун ордуна, көз карандысыз кодду жайгаштырыңыз.
- Иштеп жатканда, башка түзүлүштөрдөн кодду импорттоо.
- Кардар тажрыйбасын сактоо менен бирге өркүндөтүлгөн иштеп чыгуучу тажрыйбасы
- Микро фронтондор монолиттүү түрдө иштешет.
- жыйынтыктоо
Микро фронтондор концепциясы микросервистерди фронтенддерди иштеп чыгуу үчүн колдонот.
Идея тиркемени же веб-сайтты кичинекей, өз алдынча иштелип чыккан бөлүктөргө бөлүү болуп саналат, алар кийинчерээк иштөө учурунда туташып турат, аларды бирдиктүү, бирдиктүү монолит катары түзүүгө каршы.
Метод башка технологияларды колдонуу менен жана көз карандысыз командалар менен колдонмонун башка компоненттерин түзүүгө мүмкүндүк берет.
Идея ушундай жол менен өнүгүү сегменттөө менен типтүү монолит менен байланышкан тейлөө чыгымдарын азайтуу болуп саналат.
Колдонмонун белгилүү бир чөйрөсүнө ырааттуу команда катары көңүл бурууга мүмкүндүк берүү менен, ал ошондой эле бэкэнд жана фронталдык иштеп чыгуучулардын ортосундагы кызматташтыктын жаңы формаларын мүмкүн кылат.
Мисалы, сизде издөө мүмкүнчүлүгү же бизнес үчүн маанилүү болгон негизги продуктунун башка аспектиси үчүн гана жооптуу болгон командаңыз болушу мүмкүн.
Модуль федерациясынын аркасында сизде иштөө процессин башкаруу үчүн жетиштүү функция бар micro frontend мамиле кылуу мандаттары.
Бул пост модуль федерациясынын архитектурасын, ошондой эле анын негизги өзгөчөлүктөрүн жана колдонуу үлгүлөрүн терең карап чыгат.
Ошентип, а модулдук федерация?
Javascript модулунун федерация дизайны көптөгөн колдонмолордо кайра колдонулган бөлүктөрдү колдонот.
Бул абдан жөнөкөй жаргон, бирок мен жөн гана желмогуз көрүнүү үчүн ушундай кылып койдум.
Баарыбызга React тиркемесинин ичиндеги компоненттерди бөлүшүү менен тааныш болгондуктан, Module Federation практикада ошол эле максатты натыйжалуу ишке ашырат, башка тиркемелерди колдонуу үчүн колдонмо модулдарын динамикалык түрдө ачып бергенден башкасы.
Module Federation бөлүштүрүлгөн системада модулдарды бөлүшүү көйгөйүн чечүүгө умтулат, бул негизги бөлүшүлгөн элементтерди макро же микро катары каалагандай жеткирүү.
Бул аларды колдонмолоруңуздан жана куруу иш процессинен алып салуу менен ишке ашат.
Эмне үчүн модулдук федерация?
Бул жерде модулдук федерация оңой чече ала турган кээ бир факторлор бар:
- Сырткы жана DLL'лер (Динамикалык шилтеме китепканалары) колдонмолор ортосунда функцияларды бөлүшүү үчүн бизде кээде гана болгон. Мунун баары масштабдуу кодду бөлүшүүнү абдан татаал кылды.
- NPM солгун.
- Эки өзүнчө программа маанилүү кодду бөлүшсө, алар динамикалуу жана ийкемдүү болушу керек.
Өз алдынча колдонмолор толугу менен өздөрүнүн репозиторийинде болушу, өзүнчө жайгаштырылышы жана өздөрүнүн көз карандысыз SPA катары иштеши үчүн Модул Федерациясы түзүлгөн.
Модуль федерациясынын негизги компоненттери
Тереңирээк сүңгүүдөн мурун, модулдук федерация алып келген бир нече жаңы концепцияларды кыскача талкуулоо маанилүү.
- Хост: Барак жүктөлгөндө, башында инициализацияланган куруу же модул хост деп аталат. Провайдерди хост катары кароого болот.
- Remote: Алыстан башкаруу - бул хосттун бир бөлүгүн колдонгон башка түзүлүш. Алар ошондой эле кардарлар деп аталат.
- Эки багыттуу хост: башка хосттор колдонгон пульт жана пульттарды жалмап турган хост катары иштеген Webpack түзүлүшү.
- Сатуучунун федерациясы: npm модулунун көз карандылыктарын, алар жүктөлгөн жерине карабастан, хост же алыскы аралыкта декларативдик бөлүшүлгөн аткаруу убактысын бөлүштүрөт. Микро фронтондор менен иштөөнүн негизги көйгөйлөрүнүн бири ушундай жол менен чечилет.
Федерацияланган өтүнмөнүн үлгүлөрү
Evergreen дизайн системасы
Федерацияланган тиркемелердин эң негизги формаларынын бири - бул "Дизайн системасы" же "Компоненттик китепкана" сыяктуу бөлүшүлгөн пульт болгон, бардык колдонуучулар үчүн өз алдынча бөлүштүрүлгөн жана жаңыртылган "түбөлүк жашыл пульту".
Ар бир колдонмо командасы оңдоолорго убакыт коротпостон, бул бардык онлайн сайттар эң акыркы корпоративдик идентификацияга дал келишин камсыздоо үчүн пайдалуу болушу мүмкүн.
Коопсуз, үзгүлтүксүз жаңыртууларды кепилдөө үчүн зарыл болгон чектөөлөрдү жана жол-жоболорду иштеп чыгуу жана киргизүү үчүн, бул федерацияланган колдонмо архитектурасын карап чыгууда бизнес баштоо үчүн пайдалуу жер болушу мүмкүн.
Төмөндө өз алдынча орнотулган жалпы пульттар ылайыктуу болушу мүмкүн болгон кээ бир колдонуу учурлары келтирилген:
- Дизайн системалары
- Колдонмо кабыктары
- Компоненттик китепканалар
- керектөөчүлөр
- Бөлүшүлгөн куралдар
- Ички же тышкы тарабынан колдонулган виджеттердин альтернативалуу бөлүштүрүү моделдери
Multi-SPA модулдарын бөлүшүү
Компоненттер сыяктуу буга чейин экспорттолгон функцияларды ар кандай өз алдынча бир беттик колдонмолордо кайра колдонуңуз. Артыкчылыктарга төмөнкүлөр кирет:
- Керектөөчүлөр автоматташтырылган жаңыртууларды алышат
- Домендин тажрыйбасы аны башкарган командада калат.
- Жайгаштыруу жол-жобосун жеңилдетет, анткени өзүнчө модуль чыгаруунун кереги жок.
Shell жетектеген федерация
Коркунучтуу федерация төмөнкүлөрдү камтыйт:
- Продукттун жаңы версиясын түзүп жатканда, Продукт командасы Checkout командасынын ишин бүтүрүшүн күтпөйт.
- Алыстан башкарууну которууда баракты кайра жүктөө болбойт.
- Зарыл болгон учурда, Shell жай алыстан жүктөөнү жана (жогорку деңгээлдеги) маршрутту сунуштайт.
- Алыскы башкаргычтар боюнча маршрутизация сатуучулардын федерациясы аркылуу мүмкүн болот, бул көп колдонулган npm пакеттерин кайра колдонууга мүмкүндүк берет.
- Shell алкакты жана башка жалпы көз карандылыктарды сунуштайт, алар жалкоо жүктөлгөн пульттар тарабынан кайра колдонулат.
Көп кабаттуу федерация
Жогоруда сүрөттөлгөн кабык менен башкарылган федерацияга окшош, бирок ар кандай снаряддар колдонулган.
Камтыйт:
- бир катар снаряддар
- Ак белгилөө
- Бардык эле пульттар Shell B тарабынан талап кылынбайт же көз карандысыз ишке кирбейт.
Module Federation негизги өзгөчөлүктөрү
Мыкты веб аткаруу
КЭУБ модулунун нормалдуу курамына байланыштуу маселе, багуучулардын саны көбөйгөн сайын, колдонмонун көлөмү жалпысынан чоңоёт.
Колдонмоңуз жүктөлүп жатканда таңгактарды жүктөөнү болтурбоо үчүн жана аларды зарыл болгондо гана жүктөө үчүн, Module Federation сизге таңгактарды жалкоолук менен жүктөө мүмкүнчүлүгүн сунуштайт.
Бул модулдарды талап кылынганга чейин жүктөө зарылдыгын алдын алат, бул сайттын ылдамдыгын жакшыртат.
Натыйжалуу өнүктүрүү
Ар бир долбоор өзүнчө өндүрүлүп, жеткирилиши мүмкүн жана ар кандай командалар тарабынан ишке ашырылышы мүмкүн, анткени Модуль Федерациясы сизди өзүнчө (жана, демек, параллелдүү) куруп жана жайгаштыра алышыңыз үчүн колдонмоңузду дискреттик долбоорлорго уюштурууга үндөйт.
өзүн-өзү айыктыруу жана ашыкча жөндөмдүүлүгү
Бөлүшүлгөн көз карандылыктар Модул Федерациясына программаңыздын бардык көз карандылыктарын бир жерден көзөмөлдөөгө мүмкүндүк берет.
Ошентип, тиркеме көз карандылыкты билдирбесе да же тармак көйгөйлөрү пайда болгондо дагы, ал өзүнө эмне керек экенин билет жана керек болсо, аны жүктөп ала алат.
Жалпы көз карандылыктарды эффективдүү башкаруу
Кошумчалай кетсек, Module Federation көз карандылыкты башкарууну сунуштайт, сатуучу менен үчүнчү тараптын талаптарын натыйжалуу чечет, андыктан сиздин колдонмоңуз китепкананын бирден ашык версиясын эч качан жүктөбөйт.
Керектөөчүлөрдү кайра жайгаштыруунун ордуна, көз карандысыз кодду жайгаштырыңыз.
Иштеп чыгуучу дайыма жашыл функцияга ээ болууга абдан кызыкдар. Ачык көз каранды функциялар өзгөргөндөн кийин, керектөөчүлөрдү кайра орнотуунун кереги жок болот.
Бул күтүлбөгөн натыйжаларга жол бербөө үчүн кылдат текшерүүнү талап кылган өтө күчтүү өзгөчөлүк экенин моюнга алышым керек.
Иштеп жатканда, башка түзүлүштөрдөн кодду импорттоо.
NPM пакетинин моделин кабыл алууда, кодду бөлүшүүнүн жана "китепкананы" ойлонуунун ордуна, API'лерге окшош Модул федерациясын колдонгон колдонмолорду карап чыгышыбыз мүмкүн.
Алар башка колдонмолордон функцияларды ала тургандай эле, веб-тиркемелер дагы башка колдонмолорго функцияларды бере алат.
Кардар тажрыйбасын сактоо менен бирге өркүндөтүлгөн иштеп чыгуучу тажрыйбасы
кандайдыр JavaScript иштеп чыгуучусу Module Federation менен абдан ыңгайлуу болот, анткени бул Webpack плагини, ал Webpack 5-версиясында жеткиликтүү.
Бул, чынында, бир аз ойлонуп көрсөк, абдан күчтүү жана кызыктуу.
Үчүнчү тараптын Webpack жүктөөчүлөрүн колдонуу менен, бардык компоненттерди карап көрүңүз webpack топтомдор, анын ичинде скрипттер, активдер, стилдер, сүрөттөр, белгилер жана башкалар.
Модул федерациясын колдонуу менен булардын бардыгын бөлүшүүгө жана федерациялоого болот.
Микро фронтондор монолиттүү түрдө иштешет.
Колдонмоңузга жалпы функцияларды кошуу абдан оңой; таңгакты кадимкидей импорттоо же синхрондук жүктөөнү колдонуу.
Же болбосо, асинхрондук жүктөө жалкоо жүктөөнү колдонуу менен зарыл болгондо гана көз карандылыкты жүктөө үчүн колдонулушу мүмкүн.
жыйынтыктоо
Бул постто биз Модул Федерациясын сиздин микро фронтондук тиркемеңизди иштеп чыгуу үчүн фантастикалык тандоо катары талкууладык.
Колдонмолорго иштөө учурунда функцияларды алмашууга жана колдонууга уруксат берүү ар кандай топторго көз карандысыз тиркемелерде иштөөгө мүмкүнчүлүк берип, масштабдуулукту кубаттайт.
Жалпы функциялар өзгөргөндө, керектөөчүлөрүңүздү иштеп чыгуунун жана жайылтуунун кереги жок болот, анткени ал дайыма жашыл функцияларды колдойт.
Программаңыз орнотулгандан кийин монолит сыяктуу иштейт, бул укмуштуу.
Бөлүшө турган көз карандылыктар колдонмолордун көлөмүн азайтуу үчүн колдонулат. Көптөгөн иштеп чыгуучулар Webpack чөйрөсү менен мурунтан эле тааныш болгондуктан, иштеп чыгуучунун тажрыйбасы эң сонун.
Таштап Жооп