Go

reflect в Go: когда оправдана рефлексия и чего она стоит

reflect в Go: когда оправдана рефлексия и чего она стоит

reflect даёт доступ к типам и значениям в рантайме — на нём стоят encoding/json, ORM, валидаторы. Но за гибкость платят: потеря типобезопасности, аллокации и заметное замедление. Разбираем Type/Value/Kind, изменяемость через reflect, три закона рефлексии и её цену — на бенчмарках рефлексия против прямого доступа

net/http вглубь: сервисы на стандартной библиотеке (и почему не gin)

net/http вглубь: сервисы на стандартной библиотеке (и почему не gin)

Стандартный net/http после Go 1.22 (роутинг по методу и пути, path values) + middleware-функции покрывают большинство HTTP-сервисов без фреймворка. Разбираем ServeMux, middleware, таймауты сервера и клиента — и дуализм gin: почему он самый популярный и почему для долгоживущего сервиса стоит держаться ближе к stdlib

Отладка конкурентности в Go: race detector, утечки горутин, дедлоки

Отладка конкурентности в Go: race detector, утечки горутин, дедлоки

Как ловить конкурентные баги в Go: race detector по-настоящему (как читать отчёт, оверхед, место в CI), поиск утечек горутин через goleak и pprof, дедлоки и встроенный детектор, профили блокировок и мьютексов

Модель памяти Go: happens-before и почему гонки — это не «иногда»

Модель памяти Go: happens-before и почему гонки — это не «иногда»

Что на самом деле гарантирует модель памяти Go: отношение happens-before, публикация данных через каналы, мьютексы и атомики, переупорядочивание операций и почему гонка данных делает программу некорректной — модель памяти перестаёт давать нужные гарантии, а не просто «изредка возвращает неверное значение»

Контекст в Go: отмена, дедлайны, values и анти-паттерны

Контекст в Go: отмена, дедлайны, values и анти-паттерны

context.Context — единый механизм отмены, дедлайнов и передачи request-scoped данных сквозь цепочку вызовов. Как отмена распространяется по дереву горутин, почему context идёт первым аргументом и не хранится в структуре, чем опасен WithValue и как не потерять отмену — на живом стенде

Тестирование в Go: table-driven, Testcontainers, -race

Тестирование в Go: table-driven, Testcontainers, -race

Практичное тестирование Go-сервиса: стандартный пакет testing и table-driven как фундамент, httptest для хендлеров, интеграционные тесты через testcontainers-go на реальных Postgres и Redis, детектор гонок -race и честное покрытие без самообмана — на одном сквозном стенде с живыми замерами