Подборка объединяет вопросы, отмеченные на этапах интервью в Digital Spirit. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: backend, theory, live coding.
** элементы мапы перебираются в случайном порядке: последовательность нестабильна и может меняться при каждом обходе. Это необходимо учитывать при проектировании кода.
Обобщённое программирование (generics) в Go появилось начиная с Go 1.18 (2022) обобщённые функции и типы объявляются с параметрами типа для этого применяется синтаксис с квадратными скобками: func Foo[T any](param T)…
В Go нет классов: для представления данных применяются структуры Поведение инкапсулируется с помощью методов, связанных с типами структур Интерфейсы задают набор методов, которые могут реализовывать типы, обеспечивая…
Время жизни переменной в heap участок динамической памяти, предназначенный для переменных существует до явного освобождения (free/delete) либо запуска сборки мусора не привязана к времени выполнения функции, в отличие…
Как индексы влияют на производительность Индекс представляет собой структуру данных, предназначенную для ускорения поиска в БД С его помощью строки находятся без полного просмотра таблицы (избегают full table scan)…
Распределённые системы, микросервисы Для поддержания согласованности применяются паттерны Event Sourcing и CQRS Применение асинхронного взаимодействия на основе событий (event-driven architecture) Использование…
контроль конкурентного доступа к данным доступные уровни: Read Uncommitted, Read Committed, Repeatable Read, Serializable решение определяется соотношением требований к консистентности и производительности низкие…
Как работает type switch в Go? механизм для определения типа значения интерфейсной переменной специальный вариант switch для проверки динамических типов синтаксис: switch v := x.(type) { case T1: ... case T2: ... }…
append — функция для добавления элементов в срез в срезах Go добавляет один или несколько элементов с амортизированной сложностью O(1) при нехватке ёмкости создаёт новый внутренний массив и копирует в него…
Слайс состоит из трёх полей: указателя на массив, длины и ёмкости Указатель содержит адрес первого элемента используемого сегмента массива Длина показывает количество доступных элементов (len) Ёмкость задаёт…