Post content
🙃Всем привет! Решил немного реформировать канал и превратить его в дев-лог. Если кто-то не в курсе: я работаю над разработкой нескольких прикольных проектов — @clips, @sounds, @texts, @saver. В общем, всё, что вы видите в списке приложений @notmeme. 🤓 Тут буду иногда рассказывать технические детали: что, где и как у нас работает. Обеспечить миллионы пользователей стабильной работой сервиса с кучей технически сложных механик — задача не из лёгких. Возможно, вам будет интересно узнать, как всё устроено внутри и что скрывается за, казалось бы, простой строкой - @sounds привет 📹Начну с того, как мы создавали @clips. Изначальная гипотеза была такая: современный "молодёжный" чат — это не только текст, а общение через стикеры, гифки и всё вот это. Мы решили расширить этот формат и привнести новую социальную механику — реакции короткими видео (что-то из разряда тиктока, но прямо в переписке). 💜 В прошлом году за несколько недель мы решили быстро протестировать идею прям перед новым годом. Продумали систему — точнее, как она должна работать: ⚡️ 1) Отправка кружков из существующей базы 1.1) Инлайн. Функционал Telegram, благодаря которому вы можете в любом чате ввести запрос и отправить контент без общения с ботом в личке. 1.2) Хранение. Все наши кружки хранятся в Telegram — оттуда мы быстро отдаём пользователю медиафайл при поиске. Поэтому результат виден почти мгновенно. 1.3) Поиск. Начинали с простого полнотекстового поиска: вычленяем слова из запроса, сравниваем с базой и собираем максимально релевантный список кружков. У каждой единицы контента есть описание и название — по ним и идёт сравнение. ⚡️ 2) Добавление контента 2.1) Источникконтента. Чтобы кружки вообще появились, их нужно было где-то взять. Первую партию мы добавили так: спарсили несколько мемных площадок, преобразовали видосы в кружки, сделали описания и названия, а затем занесли всё в базу. 2.2) Но парсингом одним не живём: мы решили, что пользовательский контент важнее просто сборника видосов из интернета. Поэтому быстро собрали MVP мини-приложения, где за пару кликов можно подредактировать любой видос из вашей галереи, добавить описание и название — и он попадёт в общую выдачу. 2.3) Модерация. Как и в любом сервисе с пользовательским контентом, важно помнить, что не все пользователи милые и пушистые. Поэтому после ваших пары кликов всё уходит на модерацию: там мы проверяем опасный контент и соответствие видео и текста. ⚡️3) Мини-приложение и синхронизация с Telegram Чтобы всем этим было удобно пользоваться, мы сделали так, что контент живёт сразу в двух местах: — в Telegram (как хранилище и источник для быстрой отправки), — и в нашем мини-приложении Telegram, где уже есть нормальный интерфейс. В мини-приложении можно: - посмотреть все мемы/кружки, - искать, включать фильтрацию и быстро находить нужное, - увидеть, какие мемы вы залили, - проверить, на каком статусе модерации каждый мем (в обработке / одобрен / отклонён и т.д.). И ещё важный момент: все уведомления синхронизированы с личкой Telegram. Результаты модерации и любая важная инфа для пользователя прилетают туда, где это реально заметно и привычно — прямо в чат. ⚡️ Про скорость тоже будет отдельный пост: сейчас на один запрос у нас уходит меньше 0.5 секунд, чтобы отдать результаты поиска. Но пришли мы к этому не сразу — там было много интересных (и болезненных) оптимизаций. 💻 Немного цифр в @clips на сегодня: - Более 700.000 пользователей - 100.000 кружков в нашей базе - Юзеры отправили кружки более 6.000.000 раз - Более 180.000 пользователей с нами ежемесячно @FragMemBots | @katant