Модель данных для книжного фонда
Разделите авторов, книги, читателей и выдачи. Связь книги с авторами допускает соавторство, а уникальность незакрытой выдачи не позволяет одновременно выдать экземпляр двум читателям.
Читать ответПодготовка к интервью
881 вопрос с собеседований в Ozon
Что проверяют на интервью
Подборка объединяет вопросы, отмеченные на этапах интервью в Ozon. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: database, backend, sql.
Каталог
Разделите авторов, книги, читателей и выдачи. Связь книги с авторами допускает соавторство, а уникальность незакрытой выдачи не позволяет одновременно выдать экземпляр двум читателям.
Читать ответНазовите фактические БД и брокеры, связав каждый с задачей: транзакционные данные, кэш, аналитика, события или очереди работы.
Читать ответTCP даёт упорядоченный надёжный поток байтов, UDP — отдельные датаграммы без таких гарантий. DNS-клиент сам обрабатывает таймауты и повторные запросы.
Читать ответОценивайте знания по самостоятельно решаемым задачам, разделяя работу пользователя, диагностику приложений и администрирование инфраструктуры.
Читать ответOi — псевдоним таблицы order_items, заданный непосредственно после её имени. Он сокращает ссылки на столбцы и устраняет неоднозначность при соединениях.
Читать ответОпишите область ответственности команды и её пользователей, затем основные бизнес- и технические задачи. Название отдела само по себе мало объясняет.
Читать ответУсловие на общую сумму нужно перенести в HAVING после GROUP BY. Фильтр WHERE amount > 1000 проверяет отдельные заказы и решает другую задачу.
Читать ответПроцесс использует несколько ядер, когда имеет несколько готовых к выполнению потоков ОС. Планировщик может выполнять их одновременно на разных CPU.
Читать ответdefer не выполняется, если до него не дошли, функция не завершилась или процесс оборван без размотки стека, например через os.Exit. Обычная panic запускает отложенные вызовы.
Читать ответСократите объём логов, уберите тяжёлую сериализацию из горячего пути и организуйте ограниченный буфер с контролем backpressure. Синхронность stdout зависит от среды.
Читать ответКаждая попытка получает собственный AbortController и таймер. После ошибки запрос повторяется; maxRetries означает дополнительные повторы, то есть всего максимум maxRetries + 1 попыток.
Читать ответПостройте таблицу билетов по from и набор всех to. Начальный город — тот from, которого нет среди to; затем последовательно переходите по таблице.
Читать ответ