Подборка объединяет вопросы, отмеченные на этапах интервью в Indrive. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: database, sql, go.
В Go стандартная карта (map) не является потокобезопасной для одновременного чтения и записи из разных горутин. Чтобы обеспечить безопасную работу с map в многопоточной среде, можно использовать следующие подходы:
HTTP/3 — это новая версия протокола HTTP, которая использует транспортный протокол QUIC вместо TCP, применяемого в HTTP/1.1 и HTTP/2. Ключевые отличия:
В Go создание новой горутины происходит с помощью ключевого слова go, после которого вызывается функция. При этом создаётся легковесный поток выполнения — горутина, который планировщик Go запускает параллельно с другими.
В Go (Golang) текущий контекст выполнения программы обычно представлен типом context.Context. Он используется для передачи информации о состоянии выполнения, отмены операций и дедлайнов между горутинами.
Механизм взаимного исключения (Mutex) в многопоточном программировании используется для предотвращения одновременного доступа нескольких потоков к общим ресурсам или критическим секциям кода.
Гарантия доставки сообщений "не более одного раза" (at most once) означает, что сообщение может быть доставлено либо один раз, либо не доставлено вовсе — дубликаты исключены, но возможна потеря сообщения.