Съдържание[Крия][Покажи]
- И така, какво е модулна федерация?
- Защо модулна федерация?
- Основни компоненти за обединяване на модули
Основни характеристики на Module Federation+-
- Отлична уеб производителност
- Ефективно развитие
- Способност за самолечение и излишък
- Ефективно боравене с общи зависимости
- Вместо да се налага да внедрявате повторно потребители, разположете независим код.
- Когато се изпълнява, импортирайте код от други компилации.
- Подобрено изживяване на разработчиците при запазване на изживяването на клиента
- Микро-frontends работят по монолитен начин.
- Заключение
Концепцията за микро интерфейси прилага микроуслуги за разработване на интерфейси.
Идеята е приложението или уебсайтът да се разделят на по-малки, независимо разработени части, които след това да се свързват по време на изпълнение, за разлика от създаването им като единичен, сплотен монолит.
Методът ви позволява да създавате други компоненти на приложението, като използвате други технологии и с независими екипи.
Идеята е да се намалят разходите за поддръжка, свързани с типичен монолит, чрез сегментиране на развитието по този начин.
Позволявайки им да се концентрират върху определена област от приложение като съгласуван екип, това също така прави възможни нови форми на сътрудничество между бекенд и предни разработчици.
Например, може да имате екип, който е единствено отговорен за възможностите за търсене или друг аспект на ключов продукт, който е от решаващо значение за бизнеса.
Благодарение на модулната федерация имате достатъчно функционалност, за да се справите с работния процес, който микро интерфейс подход мандати.
Тази публикация ще разгледа задълбочено архитектурата на модулната федерация, както и нейните основни характеристики и модели на приложение.
И така, какво е a модулна федерация?
Дизайнът на обединяване на модули на Javascript използва повторно използвани части в много приложения.
Това е доста елементарен жаргон, но аз просто го направих да изглежда така, за да изглежда прохладно.
Тъй като всички сме запознати със споделянето на компоненти в React приложение, Module Federation ефективно постига същата цел на практика, с изключение на това, че динамично излага модулите на приложението за потребление от други приложения.
Module Federation се стреми да преодолее проблема със споделянето на модули в разпределена система, като доставя тези ключови споделени елементи като макро или микро според желанието.
Това се постига чрез премахването им от вашите приложения и работния процес на изграждане.
Защо модулна федерация?
Ето някои фактори, с които федерацията на модули може да се справи лесно:
- Външни файлове и DLL (библиотеки с динамични връзки) бяха всичко, което понякога имахме за споделяне на функционалност между приложения. Всичко това направи споделянето на код за мащабиране изключително предизвикателно.
- NPM е бавен.
- Когато две отделни програми споделят ключов код, те трябва да бъдат динамични и гъвкави.
За да могат самостоятелните приложения да бъдат изцяло в собственото си хранилище, да се разполагат отделно и да работят като собствен независим SPA, беше създадена Module Federation.
Основни компоненти за обединяване на модули
Преди да се потопите по-дълбоко, е важно да обсъдите накратко няколко нови концепции, които носи федерацията на модула.
- Хост: Когато една страница се зареди, първоначално инициализираната компилация или модул се нарича хост. Доставчикът може да се разглежда като хост.
- Дистанционно: Дистанционното е различна конструкция, която използва част от хоста. Те също се наричат клиенти.
- Двупосочен хост: изграждане на Webpack, което функционира както като дистанционно, което другите хостове консумират, така и като хост, който консумира дистанционни.
- Федерация на доставчици: позволява декларативно споделено споделяне на време на изпълнение на зависимости на npm модул за хост или отдалечено, независимо от местоположението, от което са заредени. Един от основните проблеми с производителността на микро интерфейсите е решен по този начин.
Модели на обединено приложение
Evergreen Design System
Една от най-основните форми на обединени приложения е „вечнозелено дистанционно“, което е споделено дистанционно като „система за проектиране“ или „библиотека с компоненти“, което се разпространява независимо и актуализира за всички потребители.
Без да се налага всеки екип на приложението да отделя време за ревизии, това може да е полезно за гарантиране, че всички онлайн сайтове се придържат към най-новата корпоративна идентичност.
За да се проектират и въведат ограниченията и процедурите, необходими за гарантиране на сигурни, текущи актуализации, това може да е полезно място за бизнеса да започне, когато обмисля архитектура на обединено приложение.
Следват някои случаи на употреба, при които независимо разгърнати споделени дистанционни управления може да са подходящи:
- Системи за проектиране
- Обвивки на приложения
- Библиотеки с компоненти
- Потребителите
- Споделени набори от инструменти
- Алтернативни модели на разпространение за уиджети, използвани от вътрешни или външни
Споделяне на мулти-SPA модул
Използвайте повторно вече експортирани функции, като компоненти, в различни самостоятелни приложения с една страница. Предимствата включват:
- Потребителите получават автоматизирани актуализации
- Експертният опит в областта остава на екипа, който отговаря за него.
- Рационализира процедурата за внедряване, тъй като не са необходими отделни издания на модули.
Федерация, управлявана от Shell
Управляваната федерация включва:
- Когато създава нова версия на продукта, продуктовият екип не чака екипът на 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 на трети страни, помислете за всички компоненти, които WebPACK пакети, включително скриптове, активи, стилове, снимки, маркдауни и др.
Чрез използването на Module Federation всички те могат да бъдат споделени и обединени.
Микро-frontends работят по монолитен начин.
Доста лесно е да добавите споделена функционалност към вашето приложение; просто импортирайте пакета както обикновено или използвайте синхронно зареждане.
Алтернативно, асинхронното зареждане може да се използва само за зареждане на зависимости, когато е необходимо, чрез използване на мързеливо зареждане.
Заключение
В тази публикация обсъдихме Module Federation като фантастичен избор за разработване на вашето микро-frontend приложение.
Позволяването на приложенията да обменят и използват функционалност по време на изпълнение насърчава мащабируемостта, като позволява на различни екипи да работят върху независими приложения.
Когато общата функционалност се промени, няма да е необходимо да проектирате и разгръщате вашите потребители, тъй като тя поддържа вечнозелена функционалност.
Вашата програма ще функционира като монолит, след като бъде настроена, което е фантастично.
Споделените зависимости се използват за намаляване на размера на приложенията. Тъй като много разработчици вече са запознати със средата Webpack, изживяването на разработчиците е отлично.
Оставете коментар