drozdov @sec :~$
Все статьи
$ blog.ts

{ Тег: go }

Найдено статей: 9

// теги

Go · CLI — flag: стандартная библиотека для аргументов командной строки

12 апреля 2026 г. 4 мин чтения

В Go не нужен yargs или commander — пакет flag покрывает большинство CLI-задач. Разбираю механику флагов, почему они возвращают указатели, и паттерн обязательных аргументов.

Читать далее

Go · Concurrency — select: мультиплексирование каналов и таймауты

12 апреля 2026 г. 4 мин чтения

select в Go ждёт сразу несколько каналов и выполняет тот case, который первым получил данные. Разбираю механику, паттерн таймаута через time.After и типичные ловушки при написании сканеров.

Читать далее

Go · Testing — Table-driven tests: паттерн из стандартной библиотеки

11 апреля 2026 г. 4 мин чтения

В Go нет встроенного assert — только t.Errorf. Зато есть паттерн table-driven tests, который делает тесты читаемыми и расширяемыми. Разбираю механику, соглашения и почему это лучше, чем тесты по одному.

Читать далее

Go · Concurrency — Каналы: типобезопасная очередь с точкой синхронизации

11 апреля 2026 г. 5 мин чтения

Канал — встроенный примитив Go для передачи данных между горутинами. Разбираю буферизованные и небуферизованные каналы, worker pool и главное правило: кто пишет — тот и закрывает.

Читать далее

Go · Concurrency — context.Context: отмена и дедлайны без глобального состояния

11 апреля 2026 г. 4 мин чтения

context.Context — стандартный способ ограничить время выполнения и отменить сетевые вызовы в Go. Разбираю WithTimeout, WithCancel, defer cancel() и типичные ошибки при работе с контекстом.

Читать далее

Go · Interfaces — утиная типизация без implements

11 апреля 2026 г. 4 мин чтения

В Go нет явного implements — тип реализует интерфейс автоматически, если у него есть нужные методы. Разбираю как работает утиная типизация, pointer receiver vs value receiver, и почему маленькие интерфейсы — это идиоматичный Go.

Читать далее