Почему gRPC эффективнее REST в высоконагруженных микросервисах?
gRPC обеспечивает низкие задержки, меньшую нагрузку на сеть и сервисы, масштабируемость и строгую типизацию, которые особенно важны для высоконагруженных микросервисов.
Читать ответПодготовка к интервью
279 вопросов по Golang с технических собеседований
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Что проверяют на интервью
На странице собраны вопросы по Golang — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: backend, concurrency, database.
Каталог
gRPC обеспечивает низкие задержки, меньшую нагрузку на сеть и сервисы, масштабируемость и строгую типизацию, которые особенно важны для высоконагруженных микросервисов.
Читать ответПочему блокировки только записи недостаточно? (check-then-act под замком) Контекст: конкуррентность и синхронизация потоков Если под замком находится только запись, сама проверка остаётся уязвимой к изменениям из…
Читать ответгорутины — лёгкие потоки, для которых не предусмотрен встроенный механизм прерывания отсутствие API для принудительной остановки повышает безопасность и помогает предотвращать утечки ресурсов попытка «убить» горутину…
Читать ответПочему в Go нельзя создавать новый http.Client для каждого запроса? http.Client — структура, предназначенная для отправки HTTP-запросов в Go через встроенный Transport управляет TCP-подключениями Transport повторно…
Читать ответПочему в Go чаще выбирают небуферизированные каналы? В Go каналы применяют для синхронизации Небуферизированный канал блокирует и отправителя, и получателя Обеспечивает жёсткую синхронизацию goroutine Предотвращает…
Читать ответUUID выбирают ради уникальности и масштабируемости, исключая узкие места централизованного генератора ID.
Читать ответВ большинстве языков строки являются иммутабельными, то есть неизменяемыми При каждой конкатенации создаётся новый массив байт, куда копируются исходные данные Внутри цикла это приводит к постоянному выделению памяти…
Читать ответПочему линейный поиск может работать неэффективно алгоритм проверяет элементы один за другим сложность поиска — O(n), поэтому время растёт вместе с объёмом данных при работе с большими массивами он становится очень…
Читать ответБезопасность: JWT передаётся клиенту, поэтому его могут украсть Конфиденциальность: пароль внутри JWT раскрывает чувствительные данные Аутентификация: достаточно передавать идентификатор пользователя или claims…
Читать ответПочему не следует создавать геттеры и сеттеры для каждого поля? Инкапсуляция означает управление доступом, а не автоматическую генерацию методов геттеры и сеттеры без практической цели делают код сложнее пассивное…
Читать ответПочему одну DTO не следует передавать через все слои и как разделять модели Многослойная архитектура строится так, чтобы каждый слой выполнял свою специализированную задачу DTO предназначены для транспортировки данных…
Читать ответПочему context.Background() не следует передавать вглубь бизнес-логики и как правильно работать с контекстами context.Background() представляет собой корневой пустой контекст: его нельзя отменить, и в нём нет значений…
Читать ответ