Подборка объединяет вопросы, отмеченные на этапах интервью в Газпром. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: backend, concurrency, database.
Чем отличаются буферизированный и небуферизированный каналы и какой из них быстрее передаёт данные? Каналы Go — средство синхронизации и обмена данными между goroutine Небуферизированный канал не хранит элементы:…
контекст: Go, выделение памяти new: резервирует память с нулевой инициализацией для указанного типа и возвращает указатель make: инициализирует и возвращает готовые к применению слайсы, карты, каналы new →…
Память обычно разделяют на стек и кучу. В стеке находятся локальные переменные и параметры функций. Размер стека ограничен, зато выделение и освобождение памяти выполняются быстро по принципу LIFO. В куче размещаются…
Как тип receiver влияет на реализацию интерфейса двумя структурами контекст: реализация интерфейсов в Go метод с получателем-значением работает с копией объекта метод с получателем-ссылкой (указателем) способен…
Как изменяется стек при вызове функции? в стек помещается контекст вызова функции формируется фрейм стека (Stack Frame), где хранятся параметры, локальные переменные и адрес возврата выполнение переключается на тело…
Каналы служат примитивом синхронизации и обмена данными между goroutine Они реализованы в виде буферизированных и небУферизированных очередей Размер буферизации задаёт число элементов, которые можно отправить в канал…
область памяти для объектов, выделяемых динамически данные с непредсказуемой продолжительностью жизни объекты, чей размер нельзя определить во время компиляции в JVM: экземпляры классов и строки (кроме string pool) в…
Какие операции и функции безопасны для nil-среза в Go? Context: Go, срезы (slice) nil-срез — срез со значением nil и нулевой длиной Методы (функции) для срезов — как правило, это функции пакета sort, append и операции…
Какие типы данных можно создать с помощью make? В Go make — встроенная функция для инициализации создает указатели на срезы (slices) создает карты (maps) создает каналы (channels) выделяет память и инициализирует…
Какие бывают типы интерфейсов? интерфейс — это способ взаимодействия между системами или компонентами пользовательский (UI): графический, текстовый и веб-интерфейс программный (API): обмен данными между программами…
часть работы с БД, отвечающая за сохранение целостности ACID: четыре ключевых свойства транзакций Atomicity — атомарность: операция выполняется целиком или не выполняется совсем Consistency — согласованность и…