Надлишковий код, що надсилається вниз по трубі з Micro-фронтами


12

Я розумію, що Micro-Frontends полягає в тому, що ключова проблема, яку вони вирішують, полягає в наданні допомоги підприємствам мати численні, можливі різні команди, працювати над окремими компонентами / невеликими додатками, які будуть використані для створення великого веб-додатка.

Тут ключовою проблемою, яка вирішується, є здатність декількох команд працювати самостійно і все ж мати можливість будувати великий композит. Проблема НЕ полягає в тому, щоб мати кінцевий користувач з пакетом для вивільнення . Чи правильно це розуміння?

Це правда, що якщо для створення великої веб-програми використовується декілька невеликих додатків, ми можемо мати декілька невеликих додатків, що доставляють ту саму бібліотеку Javascript ( наприклад, Lodash ) до браузерів кінцевих користувачів, як частина їх окремі пакети постачальників, що призводять до того, що користувач надсилає певну кількість дублікатів / зайвих кодів?

Хіба це не проблема, про яку ми повинні турбуватися під час створення архітектурного додатка?


2
Я думаю, що це абсолютно турбота, яку вам потрібно враховувати. На жаль, я не маю уявлення, як люди ставляться до цього. Хороше питання!
RubberDuck

Відповіді:


12

Ви абсолютно правильні, що тут є компроміс: ви торгуєте деякими аспектами користувацької роботи, щоб отримати кращий досвід для розробників (що, в свою чергу, може покращити роботу користувачів різними способами). Чи варто цього? Це залежить.

Я думаю, що Spotify використовує такий підхід, щоб розділити їх інтерфейс користувача на окремі компоненти ( джерело ). Кожен віджет живе у кадрі і, отже, може мати власний набір бібліотек тощо. Вони мають унікальне організаційне обмеження, що роботу виконують автономні загони (міжфункціональна команда). Це ускладнює узгодження стандартів для всієї компанії та згодом зміну цих стандартів. Тож для них мікрофронти допомагають зберегти певну гнучкість. Але без такого підходу, можливо, їхній настільний додаток був би меншим рівнем пам’яті.

HTTP кешування не дуже допоможе: кожен мікрофронт може використовувати різні версії фреймворку. Крім того, вартість дублювання - це не просто передача даних, а витрати на клієнта (повторне) складання бібліотек та зберігання дублюваних структур даних.

Особисто я вважаю, що такі мікрофронти можуть бути дійсною архітектурою, але, ймовірно, недоцільні, якщо тільки

  • ви дуже велика організація з надзвичайно автономними командами, які працюють на користувальницькому інтерфейсі і потребують дуже частого випуску (наприклад, щодня)
  • ваш бюджет продуктивності UX має місце для цього дублювання, або ваш товар настільки хороший, що UX не має значення. Зауважте, що продуктивність має бути протестована на пристроях низького класу, а не на вашій розробній машині.

Якщо ваша організація не величезна, або якщо ваші команди трохи більш спеціалізовані, всім учасникам (керівництву, розробникам і в кінцевому рахунку користувачів) може бути простіше мати спільний процес збирання та розгортання, що дозволяє уникнути зайвого дублювання. Наприклад, якщо у вас є лише 4 команди, що працюють над інтерфейсом користувача, вони, ймовірно, можуть поговорити між собою, щоб домовитись про спільний набір бібліотек та про те, як інтегрувати їхню роботу в цілісну архітектуру.

Мікрофронти здаються однією з таких справ, які дуже цікаві, але вам це не потрібно, поки ви не працюєте в масштабі.


3
Я думаю, що розбиратися на одній рамковій версії у вашій програмі, мабуть, варто зусиль.
Роберт Харві
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.