Горутины и каналы: как не выстрелить себе в ногу
Разбираю базовые ошибки при работе с горутинами и как каналы помогают синхронизировать доступ без мьютексов.
читать →Пишу о том, на что натыкаюсь в повседневной разработке на Go: горутины и каналы, стандартная библиотека, инструменты и мелкие открытия, которые экономят время.
Разбираю базовые ошибки при работе с горутинами и как каналы помогают синхронизировать доступ без мьютексов.
читать →Почему context — не просто способ передать таймаут, а основа управления жизненным циклом запроса.
читать →Многословный if err != nil на самом деле делает код честнее. Разбираю философию обработки ошибок.
читать →Тип реализует интерфейс автоматически, просто имея нужные методы. Разбираю, почему это удобно и где ловушки.
читать →Слайс — это не массив, а окно в него. Непонимание этого приводит к неожиданным багам с общими данными.
читать →Как defer гарантирует освобождение ресурсов и когда уместно ловить панику через recover.
читать →net/http достаточно мощный, чтобы во многих проектах обойтись без сторонних фреймворков. Показываю минимальный сервер.
читать →Как encoding/json работает со структурами, зачем нужны теги и почему пустые поля ведут себя неожиданно.
читать →Паттерн обёртки http.Handler позволяет строить цепочки логирования, аутентификации и восстановления после паники.
читать →Как корректно завершить сервер по сигналу, дав активным запросам доиграть до конца.
читать →go.mod, go.sum и семантическое версионирование. Как работает система модулей и что делать с конфликтами версий.
читать →Стандартный пакет testing не требует фреймворков. Показываю идиому табличных тестов.
читать →Запускать горутину на каждую задачу — не всегда хорошо. Показываю паттерн пула с фиксированным числом воркеров.
читать →«Share memory by communicating» — красивый лозунг, но иногда мьютекс проще. Разбираю, когда что уместно.
читать →Параметризация типов появилась в Go 1.18. Показываю, где она реально упрощает код, а где — избыточна.
читать →Директива embed вшивает статику прямо в исполняемый файл. Больше не нужно таскать папку assets рядом с бинарником.
читать →Встроенный pprof показывает, где программа тратит время и память. Разбираю, как снять и прочитать профиль.
читать →Теги в бэктиках — это метаданные, которые читают JSON, БД и валидаторы через рефлексию. Разбираю механику.
читать →В свежих версиях Go появились стандартные утилиты для слайсов и мап. Больше не нужно писать contains вручную.
читать →Без хайпа разбираю, за что люблю Go в серверной разработке и где он проигрывает другим языкам.
читать →