Подборка объединяет вопросы, отмеченные на этапах интервью в МТС Digital. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: database, sql, go.
В операторе select в Go порядок выполнения зависит от готовности каналов и других операций. Если несколько случаев готовы одновременно, выбирается случайный из них.
В Go структура данных Map реализована как хеш-таблица, и время поиска элемента обычно близко к O(1). Однако на временную сложность влияют несколько факторов:
Отношение многие-ко-многим в базе данных реализуется через промежуточную таблицу (join table), которая содержит внешние ключи на обе связанные таблицы.
Если в горутине вызвать panic, то эта паника будет локальной для этой горутины и приведёт к её аварийному завершению, если не будет обработана (recover).
В Go при использовании defer аргументы функции, переданной в defer, вычисляются сразу в момент объявления defer, а сама функция вызывается позже, когда окружающая функция завершает выполнение.
В PostgreSQL помимо стандартного B-tree индекса, который используется по умолчанию, есть несколько других типов индексов, которые применяются в зависимости от задачи: