BFF

BFF Расшифровка

Что насчёт общих типов?

Общие типы (Shared types) — это специализация шаблона BFF, рассчитанная на TypeScript; она позволяет использовать общее определение типов в коде и фронтенда, и бэкенда.

И это потрясающе, ведь вы в буквально смысле можете избежать проблем определений между двумя командами разработчиков, предоставив им общий источник истины.

Чтобы это сработало, нужно найти способ превратить определение типов в отдельный модуль, который смогут импортировать обе команды. Это можно сделать множеством способов, например:

  • Если у вас есть монорепозиторий, то можно просто импортировать определение из generic path в оба проекта. Однако такой подход привязывает жизненный цикл ваших типов к обоим проектам одновременно, потому что внося изменение в файл (например, в определение типа), вы влияете на весь монорепозиторий. Да, хорошо владея git, вы можете обойти эти проблемы, но это немного трудоёмко.
  • Можно превратить определение типов в модуль NPM, после чего установить в качестве зависимости в код фронтенда и бэкенда. Затем всё будет работать отлично, но на этапе начальной разработки вам необходимо будет опубликовать модуль, иначе у вас будут локальные пути импорта, которые придётся рефакторить в абсолютные. И даже после завершения начального этапа разработки любые изменения в локальной версии модуля типов нужно будет публиковать, иначе их не увидят другие проекты. Это может оказаться довольно хлопотным.


Но есть и третий, более интересный вариант, в котором используется Bit.

Что же мы сделали?

Благодаря использованию Bit и шаблона общих компонентов мы смогли соединить бэкенд-сервис с фронтенд-приложением, обеспечив для них общее определение типов.

Но что ещё здесь произошло?

  1. Во-первых, мы разработали и опубликовали три модуля, при этом нам даже не пришлось думать о компиляторе TS, WebPack, NPM или любых других инструментах, за исключением Bit. Именно поэтому я выбрал Bit и поэтому считаю его таким полезным инструментом. Он абстрагировал все шаги, необходимые для создания трёх компонентов, даже когда они работают в трёх разных средах.
  2. Мы работали с локальной зависимостью, которая должна быть внешней зависимостью, и даже не заметили разницы. Каждое обновление, вносимое в локальную версию компонента с типами BFF, подхватывалось другими двумя компонентами, и нам не приходилось заново выполнять весь процесс экспорта.

В конечном итоге, шаблон BFF и шаблон общих типов — это просто способ сказать: в конкретном сценарии, когда приемлема определённая степень связывания, давайте согласуем контракт между клиентом и сервером, переписав любые другие общие контракты, имевшиеся в прошлом.

Другие сокращения:  Издания института

Эта связь образуется между сервером и одним клиентом — помните, BFF связывает одно клиентское приложение (или тип приложений) со специализированной версией сервера. Он не отменяет обобщённый контракт с другими клиентами, которые могут использоваться с исходной версией сервиса.

______________

Дата-центр ITSOFT – размещение и аренда серверов и стоек в двух ЦОДах в Москве; colocation GPU-ферм и ASIC-майнеров, аренда GPU-серверов. Лицензии связи, SSL-сертификаты. Администрирование серверов и поддержка сайтов. UPTIME за последние годы составляет 100%.

Что такое bit?


Если вы о нём ещё не слышали,

— это open-source-инструмент (имеющий нативную интеграцию с платформой удалённого хостинга

), помогающий создавать и делать общими

. Это компоненты (или модули), которые независимо разрабатываются, имеют собственные версии и над которыми можно совместно независимо работать.

Можно или создавать новые независимые компоненты с нуля, или постепенно извлекать компоненты из уже имеющейся кодовой базы.

Хотя кажется, что это ужасно похоже на NPM, есть и важные отличия:

  • Не нужно физически извлекать код, чтобы создавать независимые новые версии, делать его общим и совместно над ним работать. Можно «экспортировать» компонент прямо из своего репозитория. Bit позволяет задать часть кода в качестве компонента и с этого момента работать с ним независимо. В свою очередь, это позволяет упростить процесс совместного использования, потому что нет необходимости в настройке отдельного репозитория и переработке процесса импорта этих файлов в свой проект.
  • Люди, «импортирующие» ваши компоненты (а не просто устанавливающие их), также могут участвовать в совместной работе над ними, изменять их и экспортировать обратно в их «remote scope» (удалённый хостинг компонентов). Это невероятно мощный подход, если вы работаете группой команд в одной организации, потому что вы можете совместно работать над одним и тем же инструментом без необходимости работы над отдельным проектом. При импорте компонента Bit код скачивается и копируется в вашу рабочую папку. Также при этом генерируется соответствующий пакет в папке node_modules. При изменении исходного кода (в рабочей папке) пакет генерируется заново. Благодаря этому вы можете использовать его, указывая абсолютный путь, подходящий для всех контекстов (это сработает, даже если вы решите установить пакет компонента без его импорта).

Именно этим мы сегодня и воспользуемся — мы можем превратить локальную настройку в сценарий с несколькими репозиториями, особо ни о чём не беспокоясь.

Bff — перевод на русский — примеры английский | reverso context

Посмотреть примеры с переводом лучшим другом
luchshim drugom
(6 примеров, содержащих перевод)

Другие сокращения:  История ЛВАКУ, Дворянский полк, Константиновское училище

«>
лучшим другом

Посмотреть примеры с переводом лучшей подругой
luchshey podrugoy
(6 примеров, содержащих перевод)

«>
лучшей подругой

Посмотреть примеры с переводом лучшей подруги
luchshey podrugi
(4 примеров, содержащих перевод)

«>
лучшей подруги

Посмотреть примеры с переводом лучшая подружка
luchshaya podruzhka
(4 примеров, содержащих перевод)

«>
лучшая подружка

Посмотреть примеры с переводом лучшей подружкой
luchshey podruzhkoy
(4 примеров, содержащих перевод)

«>
лучшей подружкой

Посмотреть примеры с переводом лучшей подруге
luchshey podruge
(3 примеров, содержащих перевод)

«>
лучшей подруге

Посмотреть примеры с переводом друзьях
druz’yakh
(2 примеров, содержащих перевод)

«>
друзьях

Посмотреть примеры с переводом ФУБ
FUB
(12 примеров, содержащих перевод)

«>
ФУБ

Посмотреть примеры с переводом ФУДБ
FUDB
(8 примеров, содержащих перевод)

«>
ФУДБ

Посмотреть примеры с переводом ЛДН
LDN
(8 примеров, содержащих перевод)

«>
ЛДН

Посмотреть примеры с переводом ЛД
LD
(6 примеров, содержащих перевод)

«>
ЛД

Посмотреть примеры с переводом ЛПН
LPN
(2 примеров, содержащих перевод)

«>
ЛПН


And, by the way, Castle, no matter what you say here, it doesn’t prove that your new bff, Billy, didn’t off Dave.

Ничего не найдено для этого значения.

Результатов: 186. Точных совпадений: 186. Затраченное время: 38 мс


Documents

Корпоративные решения

Спряжение

Синонимы

Корректор

Справка и о нас

Индекс слова:1-300, 301-600, 601-900

Индекс выражения:1-400, 401-800, 801-1200

Индекс фразы:1-400, 401-800, 801-1200

Исходная структура

Будем считать, что вы уже

Паттерн bff


Как и другие забавные акронимы в нашей отрасли, шаблон BFF основан на концепции «Best Friends Forever», однако инженеры решили назвать его «Backend For Front-end».

Смысл этого шаблона — превращение бэкенда и фронтенда в лучших друзей, несмотря на то, что напрямую они могут и не общаться. При разработке микросервиса в бэкенде, который используется множеством клиентских приложений, его API должен быть стандартным; по сути, у всех клиентов он должен быть одинаковым. Теоретически это упрощает использование и освоение вашего сервиса другими разработчиками.

Тем не менее, иногда случается, что клиентские приложения по каким-то причинам не всегда хотят/могут исполнять контракт вашего API. Из-за этого во фронтенд нужно добавлять новую логику для парсинга и преобразования ответа в то, что он может использовать.

И здесь в игру вступает BFF: вместо того, чтобы заставлять клиентские приложения общаться напрямую с микросервисом, мы приказываем им общаться с прокси-сервисом, который занимается отправкой запроса нужному сервису и преобразует ответ в вид, который может понять фронтенд.

Другие сокращения:  Раскрытие информации — АО "Теплоэнерго"

На самом ли деле шаблон BFF лучше, чем отсутствие шаблонов? Преимущества:

  1. Клиентское приложение остаётся «глупым», и это предпочтительно с точки зрения безопасности и простоты использования. Чем глупее должны быть клиентские приложения, тем быстрее другие команды смогут создавать клиентские приложения. Кроме того, основная бизнес-логика и необходимая обработка данных остаются сокрытыми на стороне бэкенда.
  2. Увеличение задержки из-за дополнительного подключения в бэкенде теоретически должно быть меньше, чем влияние потребления дополнительных ресурсов во фронтенде.

Идеален ли такой подход? Недостатки:

  1. Из-за нового элемента (т.е. ещё одного сервиса) архитектура системы усложняется. В нашем примере рассматривается только один BFF, но потенциально вы можете создавать по одному BFF для каждого типа клиентских приложений.
  2. Из-за BFF-сервиса существует тесная косвенная связь между бэкендом и фронтендом. Да, смысл BFF на самом деле в том, чтобы контракт между бэком и фронтом был именно таким, какой нужен клиенту, что до минимума снижает вероятность внесения изменений в будущем. Однако эта вероятность никогда не равна нулю, и модификации в бэкенде или фронтенде подразумевают непосредственное изменение на другой стороне. То есть они связаны.


Можете ли вы смириться с этими недостатками? Если да, то BFF вам подходит. Они вызывают слишком много проблем или вы используете монолитную архитектуру? Тогда забудьте о них и реализуйте BFF, только если начнёте работать с микросервисами.

Превращаем код в компоненты

Помните, что пока мы создали только один «официальный» компонент — React-компонент. Другие два пока представляют собой только папки с кодом. Нам нужно, чтобы Bit узнал о них, и это можно сделать так:

$ bit add bff/backend/service
$ bit add bff/common/bff-types

Пример использования bff в тексте

Термин BFF появляется в текстовых сообщениях, игровом чате и (обычно по иронии судьбы) в реальной беседе. В следующем примере показано, как этот термин может использоваться во время обмена текстовыми сообщениями:

Салли: Мне нужна твоя помощь.

Салли: Мне нужно, чтобы вы помогли нарисовать мою гостиную на следующих выходных.

Джейн: ВАЗ

Джейн: Так вот как это.

Салли: Да. Это универсальный закон.

Джейн: А что именно BFF должен принести с собой на твою вечеринку?

Родственные сокращения

BFF похож на несколько других общих интернет-сокращений и жаргонных терминов.

Создание общего модуля типов

Чтобы показать красоту практического применения этого паттерна общих типов, я создам три компонента:

Соображения

Эта аббревиатура считается случайным сленгом. Избегайте использовать его в профессиональном контексте и не используйте его во время личной речи, если только вы не пытаетесь казаться смешным.

Оцените статью
Расшифруй.Ру