Для ЛЛ: Починили Тренды, пофиксили баги, но ещё несколько дней ранее созданные трендовые посты могут "врываться" вверх ленты.

Обновление сортировки Трендов на Капибаре

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

Пример:

Vanok опубликовали пост в 18:15

BlessomL опубликовала пост в 18:20

Пост автора Vanok набрал нужное для Трендов количество рейтинга в 19:00

Пост BlessomL набрал нужное для Трендов количество рейтинга в 18:50

В итоге, пост Vanok будет стоять в Трендах выше чем пост BlesspmL, потому что вышел в Тренды позже.

Техническая реализация:

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

На данный момент(после обновления) сортировка ленты Тренды производится методом множественной сортировки (от самого важного к менее важному):

  • По времени выхода в Тренды(появилось в этом обновлении).
  • Дате публикации поста(было)
  • По количеству положительных оценок(было)
  • Рейтингу поста(было)

На каждой оценке проверяется - она переходная или нет. Как только выполняется условие что это оценка является выводящей пост в Тренды и поле "дата выхода в Тренды" пустое или равняется дате публикации - в бд записывается время выхода в Тренды.

Вопрос: Зачем проставлять значением по-умолчанию дату публикации для старых постов?

Ответ: Потому что Null(None, пусто) считается в сортировке меньше чем любая дата и вы бы увидели тогда в Тренда все существующие трендовые посты с начала альфы.

Вопрос: зачем условие проверки на неравенство дате публикации?

Ответ: чтоб посты которые на момент обновления находятся в Новом и в Тренды ещё не пришли получили правильную дату

Вопрос: что за бага описанная в первом блоке?

Ответ: если вы сейчас поставите оценку например незаслуженно забытому трендовому посту - он появится вверху ленты Тренды, потому что обновилась его дата выхода в Тренды.

P.S.: если есть опытный дата-аналитик готовый помочь в выковыривании переходного голоса чтоб правильно проставить дату перехода в тренды старым постам - вэлькам