
Чтение конфигурации в Go: короткое руководство
Три способа загрузить настройки в Go-приложение — переменные окружения, YAML-файл и флаги командной строки — с рабочими примерами и проверкой на каждом шаге. Руководство рассчитано на 20–30 минут.

Три способа загрузить настройки в Go-приложение — переменные окружения, YAML-файл и флаги командной строки — с рабочими примерами и проверкой на каждом шаге. Руководство рассчитано на 20–30 минут.

Нулевая мапа, паника при записи, случайный порядок итерации и гонки при конкурентном доступе — четыре ловушки, в которые попадает почти каждый, кто начинает писать на Go. Разбираем каждую с примерами и способами защиты.

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

Срез в Go — не массив и не список. Это трёхполевая структура, указывающая на массив, и если не понимать, как работают length, capacity и append, можно получить данные, которые молча перезаписывают друг друга. Разбираем механику изнутри, с замерами и граничными случаями.

Сервис на Go читает настройки из файла, переменных окружения и флагов командной строки — и все три источника могут противоречить друг другу. Разберём четыре подхода к чтению конфигурации, покажем рабочий код и сравним, чем за каждый придётся платить.

Переменные окружения, YAML-файлы, флаги командной строки — в Go нет встроенного «прочитай конфиг» из коробки. Разбираемся, какие инструменты есть, чем они отличаются и как не переписывать всё через полгода.

Пакет flag из стандартной библиотеки Go позволяет разобрать аргументы командной строки за десять минут без сторонних зависимостей. Разбираем, как объявить флаги, прочитать их значения, обработать ошибки и не наступить на грабли с порядком вызовов.

Разберём пакет flag из стандартной библиотеки Go — от простейшего ключа до подкоманд. К концу инструкции у вас будет CLI-утилита, которая принимает строковые, числовые и булевы флаги, валидирует ввод и выводит справку.

Встраивание (embedding) — механизм Go, который заменяет классическое наследование и позволяет одной структуре получить поля и методы другой без единой строки копипаста. Разберём, как это работает, за 20 минут: от первого встроенного типа до интерфейсов, которые реализуются автоматически.

Встраивание (embedding) — механизм Go, который заменяет классическое наследование. Разбираем синтаксис, продвижение методов, конфликты имён и типичные ловушки на рабочих примерах для Go 1.22+.

Встраивание (embedding) в Go выглядит как наследование, но работает иначе — и это ловушка для тех, кто пришёл из Java или Python. Разбираем на реальном коде, где embedding спасает, где ломает, и чем платите за удобство.

Указатели — одна из первых тем, где новички в Go принимают решения наугад. Разбираем конкретные ситуации, в которых передача по указателю оправдана, и те, где она только мешает — с замерами, примерами и таблицей выбора.