Подборка объединяет вопросы, отмеченные на этапах интервью в Magnit Tech. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: go, database, sql.
В Go нет встроенного метода Map для срезов, как в некоторых других языках. Конкурентная реализация Map обычно делается вручную с помощью горутин и каналов или sync.WaitGroup.
Transactional Outbox — это паттерн, используемый для обеспечения надежной доставки сообщений в распределенных системах, особенно когда нужно гарантировать согласованность между базой данных и системой обмена сообщениями.
В Go закрытый канал (unbuffered channel) — это канал без буфера, который синхронизирует отправителя и получателя. Управлять или взаимодействовать с таким каналом можно следующими способами:
В PostgreSQL помимо стандартного B-tree индекса, который используется по умолчанию, есть несколько других типов индексов, которые применяются в зависимости от задачи: