Привет Это канал лицен ИТ и сегодня мы слушаем статью микрофронтенды Зачем нужны и как к ним прийти от автора Валерия Кондратьева который написал эту статью на сайте tiproger.ru Спасибо автору за статью и ссылочка на статью Конечно будет в описании к видео авторы этой статьи Валерий Кондратьев является руководителем отдела разработки и тестирования интерфейсов selectal А selectal это Если вы еще не слышали о них это ведущие российские провайдер балаков и АйТи инфраструктуры у которых 23000 активных клиентов и 14-летний опыт работы на рынке например вам нужно где-то держать свои системы но нет своей команды инфраструктурщиков и нет такой
экспертизы и ресурсов для того чтобы держать все это на собственных серверах тогда вы идете Select Tell и просто заказывайте там Облачный сервер у компании 6 высокотехнологичных дата-центров и облачная платформа собственной разработки клиенты могут выстроить гибкую инфраструктуру на базе облачных серверов облачные серверы selectella они на самом деле подойти для решения очень многих задач от размещения интернет-магазинов до создания каких-нибудь собственных VPN и развертывания тестовых среднектеле можно выбрать оптимальный Облачный сервер для проектов вообще любого масштаба благодаря большой гибкости выборе конфигурации можно выбрать решение под любые Требования по мощности и бюджету ну и конечно масштабируемость это сейчас важная тема
при создании систем современных именно облачные серверы становятся идеальным решением для растущих проектов основная Фишка в том что если нагрузка на сервер возрастает то можно масштабировать ресурсы сразу же без простоя То есть вы можете начать с минимальной конфигурации сервера при необходимости быстро добавить ресурсов кстати сейчас Облачный сервер selection можно заказать дешевле к заказу стал доступен бюджетный базовый SSD диск при заказе облачного сервера с новым диском экономия может для вас достигать сейчас 30 процентов но и очень удобная штука у selectella это панель управления массе или tell.ru там можно выбрать идеальную конфигурацию заказать сервер и управлять инфраструктурой в
одном окне браузера Так что переходите по ссылочке в описании сканируете qr-код и экономьте до 30 процентов на облачном сервере с новым SSD диском selectel Ну а теперь вернемся к нашим микрофронтендам микрофронтенды это достаточно хайповая тема во фронтенд разработке если коротко то это деление монолитного приложения на семантические изолированные части их независимая разработка формулировка немного замутная но сейчас мы расшифруем каждая страница сайта или приложения структурно состоит из блоков это может быть блок рекламы блок обратной связи и так далее они взаимодействуют между собой по задуманной разработчикам логики но при этом их можно разрабатывать тестировать и диплоить как отдельное
приложение сама идея вообще не Нова и пришла она из мира бэкенда речь о микросервисной архитектуре Кстати мы говорили о микросервисах В отдельной статье там где мы сравнивали микросервисы ISO ссылочка на статью в описании тут суть остается та же у нас есть большое приложение которое нужно продолжить поддерживать разрабатывать над этим трудятся несколько каждый из которых занимается своей частью в логике монолитного бэкэнда разрабатывать свою часть Без риска затронуть функциональность другой части приложения довольно непросто поэтому бэккант разделяет приложения на микросервисы и разрабатывает их изолированно но при этом так чтобы они продолжили взаимодействовать между собой микрофронтендо как и микросервисная
архитектура это результат естественного эволюционного процесса старый подход видимо налита был удобен на самом деле во многих смыслах но с учетом осложнений технологий и роста приложений приобрел свои минусы Монолит плохо масштабируется он труден в поддержке разработки и тестирования Хотя разрабатывать микросервисы бывает довольно сложнее и дороже чем Монолит но зато остальные его плюсы его оправдывают Ну и как раз вот классический способ борьбы со сложностями это разделение на составляющие если вести разработку всего приложения целиком сложно нужно распилить его на части и разрабатывать отдельно где же тут подвох логика микросервисов как рассказали уже наложилось на фронт-энд-разработку программистом работающим на
фронт тоже хотелось приобрести гибкость и независимость команд ту масштабируемость которая характерна для микросервисной архитектуры одно но фронтен всегда работает с единой средой которая трудно отделима он выполняется на стороне браузера клиента Поэтому в рамках одного приложения всегда есть только одна адресная строка один глобальный объект Local storage один Дом как бы мы не делили приложение некое Общая часть всегда останется именно Вокруг этой проблемы строится основные ограничения микрофронтендов и главное разочарование это то что в рамках микрофронтендо не получится организовать такую же изолированность частей приложения как при микросервисной разработке в бэкенде во всяком случае пока так как полное изолированности
не достичь программистам фронтендо все равно приходится очень взвешенно принимать любые изменения в коде Поэтому при разработке приложения в логике микрофронтендов очень важна экспертиза разработчиков они должны понимать как потенциально может скачать на приложение в комплексе то или иное изменение в коде Что же делать если вы хотите перейти на микрофронтенд в первую очередь поймите зачем это вам микрофронтен нужен не всем Да это тренд который сейчас активно обсуждается в комьюнити Да многие большие компании так или иначе придут к этой архитектуре но все это актуально в случае объемного приложения если сайт состоит из нескольких страниц микрофронтен теряет смысл это
уже оверхед смысл выделения Монолита есть тогда если у вас крупный проект несколько команд разработки которые возможно используют разные фреймворки это к слову еще один плюс микрофронтальная разные команды могут писать код на разных стеках кто-то пишет на реакте кто-то на ангуляре Но все объединяется в работе одного приложения затем вам нужно понять Как именно можно поделить ваш Монолит на относительно независимые для разработки блоки чаще всего отталкиваются от команд разработки обычно отделение зон ответственности уже есть просто но не воплощено в архитектуре например selectel основной разработки вронтендоров это панель управления где клиенты могут приобретать и использовать услуги при этом
в самой панели есть деление на продукты компании и как правило у каждого продукта будь то выделены серверы облачная платформа selectel manage cubernetis и так далее есть свои фронтен специалисты то есть они уже развивают только определенную часть панели дальше вам нужно выбрать инструменты которые помогут вам построить микрофронтен архитектуру сейчас появляется все больше разных библиотек инструментов которые помогают разработчикам на пути к микро frontendo например такая библиотека как сингла SPA сингл спа который объединяет несколько JavaScript приложений в одно или спецификация и Омск которая позволит на уровне нативного для вас скрипта упростить разработку микросервисов на фронтенде современные фреймворки типа
View angular также имеют Некоторые возможности которые позволяют писать свое приложение так чтобы в результате его проще было интегрировать микрофонтендо теория Понятно Но какая же практика если какой-то опыт использования микрофронтендо в компаниях в целом большинство крупных компаний так или иначе переходят на микрофронтен архитектуры для своих приложений Известно что в России так работают в Додо пиццы Авито Тинькофф банке например selectel тоже к этому стремится и к микрофронтендам они подходят как неизбежно необходимости в компании большой продуктивный портфель включающий как базовые услуги дата-центров так и современный пас Как можно говорили развитием продуктов занимаются как правило отдельные команды и уже
сейчас в Селект или ребята отмечают сложности в их синхронизации при разработке и релизах путь команда автора Как микрофронтендо начался во многом из-за переезда с энгуляр GS на angular их панели управления Сейчас они в процессе миграции и поддерживают гибридную структуру фронтендо как известно есть несколько способов миграции из одного фреймворка в другой первый более дорогой и долгий подразумевает поддержание предложения на старом коде и параллельно Его переписывание второй способ который в итоге выбрали ребята из Select более мягкий когда внутри их приложения подключается другой фреймворк и потихоньку кусок за куском переписывается код приложения старые и новая версия работают одновременно
в процессе переписывания код рефакторится а в течение рефакторинга выделяются части приложения они делаются более изолированными избавляются от лишней связанности таким образом создается подобие микрофронтальных архитектуры Давайте обсудим такую проблему как проблема общих ресурсов хорошим шагом к организации микрофронтанов может стать созданием монореппозитория это гид репозитории внутри которого содержатся ваши npm пакеты зависящие друг от друга модуль репозитории поможет решить проблему с конфликтом версии библиотек и ведением разработки разными командами теперь все в одном месте не нужно бегать по разным репозиториям и линковать пакеты при разработке панели управления selectel команда как раз использует моно репозиторий Раньше у них каждая услуга
была отдельным гид репозиториям в результате возникли сложности не только при локальной раз Когда нужно было линковать пакеты но и при обновлении библиотек и сборки в сиай моно репозиторий решил практически все эти проблемы Причем на его создание ушло не так много времени с точки зрения рабочих процессов монореппозиторий облегчают организацию микрофронтендов упомянем и очевидные вещи не стоит исключать лучшие практики разработки в том числе Dry Kiss и ягня и простую коммуникацию конечно обмен опытом между фронтанд разработчиками компании давайте выделим Ключевое из того что мы сегодня обсудили микрофронтендо это деление монолитного приложения на семантически изолированные части и их независимая
разработка микрофронтанды имеют смысл если у вас большое приложение несколько команд разработки Если вы все чаще сталкиваетесь с проблемами привыкать обновление приложения и преимущество Монолита обернулись в минусы для остальных проектов микрофронтенды будут достаточно избыточно у микрофронтендов есть и ограничения остается проблема общих ресурсов то есть полноценная изоляция как в случае сервисами бэкензи пока невозможно и также требуется прослойка для оркестрации приложения которое может вносить свой оверхед Что поможет исправиться с ограничениями это создание монореппозитория использование специальных библиотек и инструментов хорошая команда специалистов и использование лучших Практик разработки например драй Киса и Агни Ну а на этом все спасибо что
послушали эту статью надеюсь вам как мне было интересно если тебе понравилось это видео то ставьте ему лайк А если это уже не первое видео которое ты смотришь на канале то подпишись на канал Раз уж Тебе понравилось уже не первое видео И вообще ты можешь даже подходить к нам в Telegram там много чего интересного на Яндекс Дзен Если тебе там удобнее слушать и даже денежка можно поддержать канал на бусте или на юмане разовым переводом но это если очень захочется конечно но все пока