RU / День 2 / 17:15 / Зал 1

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

GraphQL нужен, если:

  • модели постоянно развиваются и количество полей растет;
  • есть взаимодействие между бэкендом и фронтендом, у которого предполагается стейт-менеджер;
  • нужна статическая типизация на фронтенде согласно серверной схеме данных;
  • если много разных entity (models), между ними много связей и клиенту нужны их агрегации (а-ля LEFT JOIN) и желательно за один http-запрос.

GraphQL не нужен, если:

  • ведется работа с файлами или другими бинарными данными;
  • аутентификация, есть oidc и/или oauth2;
  • CRDT и многопользовательское редактирование;
  • есть активное межсерверное взаимодействие, требовательное к скорости, памяти и/или трафику.

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

В докладе разберем сильные и слабые стороны GraphQL.

Посмотреть презентацию.

Спикеры

Павел Черторогов

Архитектор информационных систем, опенсорс-мейнтейнер. Сделал более 15 докладов о GraphQL. Обладает обширными практическими знаниями по бэкенду, фронтенду, администрированию и построению архитектуры. В 2016 начал разработку graphql-compose (генератора GraphQL-схем). Написал много материала о GraphQL на русском – https://github.com/nodkz/conf-talks. В 2019 начал формировать best practice по дизайну GraphQL-схем – https://graphql-rules.com.

Telegram – https://t.me/graphql_ru

Приглашенные эксперты

Андрей Мелихов

Мифический фуллстек, ведущий канала «Девшахта» на Youtube, соведущий подкаста «Веб-стандарты». Евангелист хорошей архитектуры, знаток Node.js и других JavaScript-рантаймов. Апологет DevOps-практик. За всё хорошее и против всего плохого. Любитель работать за идею. Idea — тоже хорошо, даже отлично.