На странице собраны вопросы по Golang — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: backend, concurrency, database.
Зачем закрывать тело HTTP-ответа в Go? Тело HTTP-ответа представляет собой поток данных (io.ReadCloser) Вызов Close освобождает сетевые ресурсы и дескрипторы Если не закрыть тело, возможны утечки памяти и зависшие…
Зачем нужны atomic.Value и atomic.Pointer? синхронизация без mutex при небольших накладных расходах atomic.Value: атомарное чтение и запись значений разных типов atomic.Pointer: атомарная работа с указателями и…
Основой HTTP/3 служит протокол QUIC QUIC работает поверх UDP, а не TCP UDP помогает добиться низкой задержки, поскольку для него не требуется устанавливать соединение Контроль потока и исправление ошибок QUIC…
Зачем нужен контекст в gRPC-запросах и что происходит после его отмены Контекст как инструмент управления жизненным циклом запроса в Go Передача дедлайнов, сигналов отмены и метаданных между клиентом и сервером…
Брокеры сообщений обеспечивают асинхронное взаимодействие и интеграцию сервисов Kafka — распределённая система и журнал событий с высокой пропускной способностью и хранением сообщений в формате log-based RabbitMQ —…
Для чего нужны транзакции? база данных, целостность объединение нескольких операций в единое целое атомарность: либо выполняются все операции, либо ни одна изоляция: исключает конфликты между параллельными операциями…
ограничение времени ожидания ответа от сервера предотвращение зависания клиента при длительном выполнении запроса защита от сетевых задержек и сбоев повышение отзывчивости приложения управление ресурсами и…
Из каких компонентов состоит HTTP-запрос? сетевой протокол HTTP/HTTPS Request Line: метод запроса (GET, POST и другие), URL и версия протокола Headers: метаданные запроса, включая Content-Type, Authorization и другие…
Системы управления базами данных Колоночная организация хранения Информация размещается по столбцам, а не построчно Оптимизация для аналитических запросов (OLAP) Эффективное сжатие и выполнение агрегаций Быстрое…
Работа с HTTP в Go resp.Body представляет собой поток тела ответа Необходимо обязательно вызвать defer resp.Body.Close() В противном случае возникает утечка ресурсов, включая TCP-соединения TCP-соединения не…
Различия Kafka и RabbitMQ в гарантированной доставке сообщений Kafka представляет собой распределённый commit log, в котором сообщения хранятся постоянно Данные попадают в топики, разделённые на partitions, благодаря…
Как Redis выполняет INCR и за счёт чего операция остаётся атомарной? Команды в Redis обрабатываются однопоточным Event Loop INCR увеличивает значение заданного ключа на единицу Вся операция выполняется как одна…