awesome-everything EN
↑ Обратно к восхождению

API

GraphQL N+1: повторение на припоминание

Суть Промпты на свободное припоминание через весь юнит GraphQL N+1. Сначала ответь своими словами, затем открой модельный ответ и сравни.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 14 min

Припоминание сильнее перечитывания. На каждый промпт скажи или напиши полный ответ по памяти, прежде чем открыть модельный — усилие припоминания и закрепляет механизм, когда ты в следующий раз увидишь страницу на 51 запрос.

Цель

Восстанови хребет юнита — почему изоляция порождает N+1, как DataLoader батчит и почему важен scope, контракт batch, federation и слои защиты по форме запроса — не подглядывая в уроки.

Вспомните перед уходом
  1. 01
    Почему GraphQL получает N+1, когда REST-контроллер на тех же данных обычно нет?
  2. 02
    Когда DataLoader запускает batch и почему граница тика лучше фиксированного таймера?
  3. 03
    Почему DataLoader надо инстанцировать на каждый запрос и что именно ломается с инстансом в module scope?
  4. 04
    Сформулируй контракт порядка batchLoadFn и как ты его выполняешь, включая отсутствующие строки.
  5. 05
    В федеративном графе что router батчит бесплатно, а что всё ещё за тобой внутри subgraph'а?
  6. 06
    DataLoader работает. Перечисли защиты по форме запроса, которые он не заменяет, и что каждая останавливает.
Итог

Если ты восстановил каждый ответ по памяти, ты держишь хребет юнита: изоляция резолверов порождает N+1, DataLoader батчит на границе тика, но безопасно — только с пер-запросным scope и контрактом batch с тем же порядком; federation отдаёт сетевой batch, но DB-batch в __resolveReference всё ещё за тобой, а защиты по форме запроса (depth, мультипликативный complexity, trusted documents, алиас- и batch-капы) охраняют всё, что DataLoader не может. DataLoader чинит, сколько обращений к БД делает запрос; слои защиты решают, какие формы вообще допущены к запуску.

Продолжить восхождение ↑GraphQL N+1: чтение кода
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.