В этой подборке вопросы сгруппированы по формату «Поведенческие вопросы», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, database, async.
В Go нет классов: для представления данных применяются структуры Поведение инкапсулируется с помощью методов, связанных с типами структур Интерфейсы задают набор методов, которые могут реализовывать типы, обеспечивая…
Как в Go реализовать graceful shutdown с defer, контекстом и обработкой ошибок в группах горутин? управлять завершением приложения через context.Context (cancel/cancellation) применять defer для освобождения ресурсов,…
В Go отсутствует классическое наследование: здесь нет классов и конструкции extends Для повторного использования кода применяют встраивание (embedding) структур При встраивании поля и методы вложенной структуры…
область: конкурентность в Go базовый механизм: goroutines (легковесные потоки) синхронизация: с помощью channels — обмен данными и сигналами между goroutines для реализации блокировок и мьютексов используется пакет…
Чем статическая типизация Go отличается от утиной В Go: применяется строгая статическая типизация тип переменной определяется при её объявлении ошибки, связанные с типами, компилятор обнаруживает до запуска программы…
Слайс представляет собой структуру поверх массива, содержащую указатель, длину и capacity Когда length становится равен capacity, для слайса выделяется новый массив Чтобы не выполнять копирование при каждом…
Работа со слайсами (Go slices) Удаление элемента по индексу Для этого объединяют два подслайса: s = append(s[:i], s[i+1:]...) В результате формируется новый слайс без элемента с индексом i, а его длина уменьшается.…
** контролируйте длительность операций в Go через context, задавая таймаут и отмену с помощью context.WithTimeout и Done(). Это позволяет ограничивать время выполнения и корректно освобождать ресурсы.
Подходы к обработке исключений в Java: try/catch и предварительная проверка условий Обработка через try/catch: перехват исключения и выполнение нужной логики непосредственно во время работы программы Предварительная…
Механизм синхронизации Java для управления потоками Каждый из этих методов можно вызывать только внутри блока synchronized wait() — поток освобождает монитор объекта и переходит в состояние ожидания notify() — выводит…
Стандартные способы управления потоками (ExecutorService, Future) Java concurrency API предназначен для управления потоками ExecutorService — интерфейс пула потоков, отвечающий за управление его жизненным циклом С…
Память JVM разделена на две основные области: heap и stack В stack находятся данные локальных переменных и информация о вызовах функций Организация stack основана на принципе LIFO, поэтому доступ к данным происходит…