13 августа 2026
id 8392427257текст ещё не в индексе
Скорее всего да, продвинутый обычно сложнее и больше матана/алгоритмов на входе
а еще куда сейчас круче поступать - в вышку мск или питер итмо?
в вышке подалась на:
• Системная и программная инженерия (нет резов)
• Управление исследованиями, разработками и инновациями в компании (прохожу сюда)
• Компьютерные системы и сети (нет резов)
• Бизнес-информатика: цифровое предприятие и управление информационными системами (нет резов)
• Биоинформатика в агробиотехнологиях (прохожу сюда)
14 августа 2026
Людмила КартышеваВсем привет! Кто играет в Доту 2? Ищу участников для турнира
надо ммр в скобочках писать
ИванКак часто люди после стажки в компании попадают в штат?
В Сбере, ТБанке, Альфе, ВК
Смотря от команды , направления
Но вообще сейчас с деньгами беда у всех, так что меньше чем было, ставки закрывают и тд
BonBonPuncher [абсолютно непрерывная функция]скока нада, че за турнир?
Можно сюда отправлю информацию?
15 августа 2026
Ссылка
нажмите — покажем
нажмите — покажем
System Design: backend
Задача с реального собеса Яндекса. Условие: приходит уведомление — id, тип (EMAIL/SMS/PUSH), получатель, текст. У получателя есть разрешённые каналы и блок-лист отправителей. Нужно отфильтровать уведомление и не отправить дубль, если такое же уже было за последние 24 часа. Хранилище реализовывать не надо — только контракты и логика. Погнали.
Понятное дело, что мы уже люди опытные и не побежим писать код, думать над DTO — мы сразу будем думать над системой проверок уведомлений. Для этого сначала нужно понять, какой информации нам не хватает.
Определим рамки задачи
Сначала границы: какие каналы поддерживаем, откуда берём настройки получателя, что считаем «таким же» уведомлением для дедупа.
Например, что значит «такое же»? «Ваш заказ №123 готов» и «Ваш заказ №124 готов» — дубль или нет? А если одно пришло по EMAIL, а второе по SMS?
Поэтому уточняем:
* дедуп общий для всех каналов или отдельный;
* что именно считается одинаковым уведомлением;
* что считается успешной отправкой;
* какие ожидаются RPS.
Но главный вопрос один: где мы помним, что уже отправляли? Это относится к устройству хранилища, которое нам сказали не реализовывать, но без этой информации нам всё же не обойтись — дальше вернёмся к этому.
Ядро решения
Ключевая мысль: фильтрация — это цепочка независимых проверок, через которую уведомление либо проходит целиком, либо отсеивается на первом же несоответствии.
Не один раздутый if, а pipeline из мелких фильтров:
- канал разрешён у получателя;
- отправитель не в блок-листе;
- уведомление не дубль за последние 24 часа.
Первый же фильтр, сказавший «нет», отсекает уведомление — остальные не гоняем. Такую систему легко расширять: новый фильтр = ещё одно звено, а не правка портянки.
Возвращаемся к дедупликации
Дедуп за 24 часа означает, что система должна хранить след недавно отправленных уведомлений. Ключ вроде: recipient + type + id. А по нему — время отправки. Пришло новое — считаем ключ и смотрим, существует ли такой за последни
1.5K ·