Веб-версияОткрыть в Telegram
ККают-компания

Кают-компания

@analystlab_chat · группа · в индексе с 2026-07-31
164участников
3пишущих за 30 дней
8сообщений за 30 дней
1 102сообщений в индексе
С
Фотография
нажмите — покажем
Меня зовут Роман Хлебников. Я единственный водитель, у которого еще остался бензин. Я выхожу в эфир по рации на пятнадцатом канале. Я приезжаю к заброшенной АЗС на окраине города каждый день, в полдень, когда солнце стоит в зените. Если у кого-то еще остался бензин... Если кто-то еще ездит на авто за хлебом… Я могу дать Вам канистру 92-го бензина, предоставить сухой охраняемый паркинг, обеспечить безопасность. Если меня кто-нибудь слышит, у кого еще не высох бак… Отзовитесь. Вы не одиноки.
1 · 206 ·
  1. A
    Смотрела сча на очереди на заправках.. Пичалька благо дизель всетаки местами есть
Вся ветка · 1 ответ →
А
Админ +
GIF
088 1-1.mp4 · 82 КБ · нажмите — покажем
С
Извините, но мне не спится 😳 К вам приходят с запросом: Нам нужно спроектировать API для мобильного приложения курьера. Добавляют немного контекста: Приложение раз в минуту запрашивает список доступных заказов для доставки. Заказы постоянно добавляются в базу сотнями в секунду. И задают вопрос: Какой тип пагинации вы заложите в контракт API и почему? Что вы ответите?
158 ·
  1. С
    Задача только выглядит тривиальной. На самом деле она поставлена не совсем корректно. В описании есть белые пятна. Плюс вишенка на торте, вопрос "Что вы ответите?", вместо наводящего вопроса "Ваши действия?". Поэтому правильно было бы в первую очередь попробовать распутать этот клубок из неопределенностей, противоречий и заполнить пробелы через вопросы к "бизнесу".
  2. С
    Вопросы: 1. Описан ли весь процесс? 2. Что мы понимаем под мобильным приложением курьера? Нужно ли нам знать о том, как работает бэкенд? 1. Кто принимает пул из примерно 6000 заказов в минуту? 2. Сколько в среднем заказов за смену выполняет один курьер? 3. Решение запрашивать пачку по API уже реализовано? 4. Проблема на стороне мобильного приложения или бэкенда?
  3. С
    Так мы сможем приблизиться к хорошей документации. 1. Полнота - когда поймем описан ли весь процесс. 2. Однозначность - когда поймем, какую проблему решаем. 3. Противоречивость - когда поймем кому и какой объем данных отправляем. 4. Реализуемость - когда поймем возможно ли реализовать отправку пачки заказов по API. Очевидно, что мы не будем каждую минуту отправлять пачку из 6000 заказов на мобильное приложение курьера. Отсюда рождается первая гипотеза: На бэкенде возможно реализован сервис, который отвечает за взаимодействие с сервисом заказов интернет-магазина. Задача этого сервиса получить все активные заказы и распределить их между курьерами. Вторая гипотеза: Один курьер за смену может доставить 20-50 заказов. Следовательно речь может идти либо о реализации пагинации этих 20-50 заказов на UI, либо о взаимодействии между бэкендом и сервисом заказов, когда нужно принимать около 6000 заказов один раз в минуту. Либо и то, и то, просто задача поставлена не корректно. Когда мы получим ответы, то продвинемся еще на один шаг.
    1. S
      Вряд ли все эти заказы релевантны для конкретного курьера (в первую очередь, географически). Скорее всего, из этих 6000 курьера могут интересовать около десятка. Очевидно, мобильное приложение будет отправлять запросы с соответствующим фильтром. Если так, задача существенно упрощается
  4. С
    Допустим, так вышло, что нужно решить сразу две задачи. Значит, нужно и разделить их на две, но объединить общей целью. Заодно задать еще парочку наводящих вопросов. 1. Как пагинация отрисована на макетах для UI? 2. Зачем нам синхронное взаимодействия на бэкенде? Ответы на эти вопросы помогут нам продвинуться еще на один шаг к нашему решению: 1. Так мы поймем, чем нас ограничивают макеты. Если на UI отрисован Infinite Scroll, то Offset-based пагинация нам не подойдет из-за риска дублирования данных при скролле. Сюда идеально ляжет Cursor-based пагинация, которая обеспечит стабильный Lazy Loading для мобильного клиента. Раз уж мы говорим об экране, на котором курьеру отображаются его заказы на доставку, то стоит подумать о ситуации, когда курьер будет оффлайн. Что мы будем делать с его заказами. Пытаться отправить или ждать, когда клиент будет онлайн? Очевидно, будем складывать в буфер (Inbox/Outbox Pattern) и ждать, когда клиент выйдет на связь и отправит новый запрос, либо в фоновом режиме (автоматически по таймеру), либо по свайпу вверх на экране вверх (Pull-to-Refresh). Когда приходит любой из этих запросов, бэкенд отдает в ответе накопленные заказы пачкой (Batch). Таким образом мы обеспечим гарантированную доставку сообщений. В качестве такого буфера можно использовать распределенный In-Memory кэш (например, Redis). 2. Так мы поймем, чем нас ограничивает текущая реализация. Возможно, нам ответят: "Так исторически сложилось", а теперь стоит задача пропихнуть через синхронный REST API 6000 заказов, когда по условиям задачи нам не нужен мгновенный синхронный ответ. Если нет ограничений на асинхронное взаимодействие, а они вряд ли могут быть, т.к. пакет отправляется один раз в минуту и вряд ли бэкенд ждет ответа эту минуту, то, возможно, стоит предложить асинхронный вариант взаимодействия для бэкенда и сервиса заказов интернет-магазина. Например, через топик Kafka. Переход на событийно-ориентированную архитектуру (EDA) через Kafka куда проще реализовать
  5. С
    Шаг за шагом, задавая вопросы и получая ответы мы переведем задачу из абстрактной в реальный кейс (кейсы) архитектурного решения, к которому сможем применить критерии оценки и написать постановки задачи на реализацию
Вся ветка · 11 ответов →
С
Опрос
нажмите — покажем
Не уверен, что вы готовы, но я продолжу. Задачка: Вы проектируете систему управления для беспилотного корабля, летящего на Марс. Корабль полетит по заранее спроектированной траектории, а финальный этап — посадка на Марс — вы должны координировать с Земли. На очередной встрече вам говорят, что в тестовом полете внутри капсулы будут находиться ваши коллеги, но у экипажа не будет физических органов управления. Ваша задача — посадить аппарат и сохранить жизнь команде.
173 ·
С
Аудио
Перфоратор.mp3 · 3.6 МБ · нажмите — покажем
Надеюсь, это будет интересно... У меня есть музыкальное образование, но дело даже не в нем. Всю жизнь меня тянет к музыке со смыслом. В студенчестве я собирал плейлисты, а потом раздавал их друзьям. Нашел студию звукозаписи, в которой выбирал треки и мне их записывали на аудиокассеты. Дальше больше. Мы с друзьями запустили подпольное радио в общежитии. А потом пришла цифра) Еще были стихи, переделки популярных песен, какие-то наброски. Даже выступал в КВН (запись не покажу ах-ах). Кто-то из нашей компании ушел в музыку с головой — пишет треки, выступает диджеем или играет на свадьбах. Еще одно интересное наблюдение. У меня есть странная чуйка: я начинаю увлекаться вещами задолго до того, как они станут мейнстримом. Например, я записывал звуки природы, когда это еще не было популярно на YouTube. Но сегодня тот самый случай, когда «в стол» больше не хочется. Я решил написать что-то эдакое и соединить слова с музыкой, и в этом мне помогла нейросеть Suno. Это черновой вариант. Приятного прослушивания)
143 ·
С
Фотография
нажмите — покажем
Загадка: А и Б сидели на трубе, А упало, Б пропало, пуш остался на трубе. Интересно, что они там курят? Вопросы. Вопросы требуют ответа! 1. Где СМС, почта или звонок? 2. Что делать тем староверам, у которых нет "устройства с установленным приложением"? Очевидно, идти на Госуслуги... Мы катимся в клоаку...
1 · 71 ·
  1. М
    Нууу… они же работают из разных стран, в некоторых из них разрешены саааамыыые разные травки ))))
Вся ветка · 3 ответа →

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем