TGViewer
Системный сервант Системный сервант @breakfront · 2.66K subscribers
Post #33 5.59K
#breakfront_analysis_fails
Продолжаю рубрику с ошибками анализа.

ПАГИНАЦИЯ

Пагинация - это выдача данных по частям, разбитыми на страницы или блоки. Например, товары интернет-магазина можно выдавать, сортируя по дате создания, разными способами:
-с 1го по 50й,
- 15 товаров, следующих за товаром с артикулом 1111-111,
- товары страницы 4 при размещении 100 записей на странице,
- и т. д.

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

При обычном положении вещей мы отдаем только отфильтрованные данные. То есть отправляется запрос на показ товаров с указанием данных для фильтрации. Внутри одной категории товаров не так много, как во всем интернет-магазине (хотя тоже может быть довольно большое количество). То есть в ответе на запрос будет не миллион товаров, а, например, несколько тысяч.

Но вдруг кто-то захотел показывать на главной странице общий каталог товаров. И так как вы уже умеете выгружать список товаров - просто сделали запрос без фильтра. И система пытается выгрузить сразу весь миллион товаров. В результате что-то сломается. Может сломаться вообще все. То есть ваш интернет-магазин может перестать работать у всех пользователей, так как все ресурсы будут уходить на попытку выгрузить все товары.

Поэтому нельзя давать возможность посмотреть сразу ВСЕ. Даже если сейчас в вашем интернет-магазине 500 товаров - через 3 года их может стать 500 тысяч.

И даже если сейчас вы не хотите или не можете делать пагинацию, надо хотя бы сделать ограничение. Например, чтобы можно было получить только первые 1000 записей. Также необходимо делать ограничение, если хотите дать возможность потребителю выбирать количество товаров на одной странице. Например, сделать максимум 100 - тогда пользователь может посмотреть по 10, 15, 50, 100 записей на странице, но не по 1000.

Пагинация делается при разработке и ее необходимо описывать в требованиях. https://twirl.github.io/The-API-Book/index.ru.html (глава 11 п. 16), тут и тут есть про виды пагинации и какие с ней могут возникнуть трудности.
twirl.github.io Сергей Константинов. API Разработка API — особый навык: API является как мультипликатором ваших возможностей, так и мультипликатором ваших ошибок. Эта книга написана для того, чтобы поделиться опытом и изложить лучшие практики разработки API. Книга состоит из шести разделов, посвящённых…
  • 👍 20
  • 🔥 2
More from @breakfront
  1. Sep 9, 2026✍️ Уже завтра стартует приём заявок на участие в бесплатной программе MENTOR IN TECH 8.0 о…
  2. Jul 14, 2026Итак, я официально ступила на тропу поиска своей первой роли в бекенде🙈. Поддержите, пожа…
  3. Jul 8, 2026Пока болею, занимаюсь креативом для Линкедин. Кстати, это мой кот Гинес
  4. Jun 30, 2026Diagram as Code в Eraser.io На выходных был мой второй подход к Eraser.io. Первый был неск…
  5. May 31, 2026ПЕРЕХОД ИЗ АНАЛИЗА В РАЗРАБОТКУ my baby steps😅 Давно здесь не появлялась и такое чувство,…
  6. Mar 15, 2026📊 Channel Analysis Results by @ScratchAuthorEgoBot 🎯 Channel: @breakfront 🔥 Roast Analy…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →