Последние статьи
Глава 12. Модули, context, тестирование — сборка проекта
Модули Go (go.mod/go.sum, go mod init/tidy/get), пакет context (Background, WithCancel, WithTimeout, WithValue, отмена HTTP-запроса), тестирование (TestXxx, table-driven, t.Run), fuzzing и сборка мини-проекта.
Глава 11. Дженерики и современная стандартная библиотека
Дженерики Go 1.18: параметры типа, ограничения comparable/cmp.Ordered, обобщённые Map/Filter/Reduce и Stack[T], вывод типов. Плюс //go:embed, структурное логирование log/slog и итераторы range-over-func (Go 1.23).
Глава 10. Обработка ошибок
Ошибки как обычные значения, идиома if err != nil, errors.New и fmt.Errorf, кастомные типы ошибок, обёртка через %w, errors.Is/As/Unwrap, errors.Join и краткий разбор panic/recover.
Глава 9. Конкурентность: горутины и каналы
Конкурентность в Go: горутины, каналы (буферизованные и небуферизованные), направленные каналы, select, закрытие и range по каналу, sync.WaitGroup и sync.Mutex, гонки данных и детектор -race, паттерн worker pool.
Глава 8. Интерфейсы
Интерфейсы в Go: неявная реализация, полиморфизм, пустой интерфейс и any, type assertion и type switch, идиомы «принимай интерфейсы, возвращай структуры», Stringer и io.Writer/io.Reader из стандартной библиотеки.
Глава 7. Структуры и методы
Как в Go описывать составные данные: объявление struct, поля и их инициализация, анонимные структуры, методы, value- и pointer-receiver, встраивание вместо наследования, теги полей и сериализация в JSON.
Глава 6. Массивы, слайсы и карты
Коллекции в Go: массивы фиксированной длины, слайсы (len/cap/append/copy/срезы и их внутреннее устройство), make, карты (создание, чтение, удаление, comma-ok) и современные пакеты slices/maps плюс встроенные min/max/clear из Go 1.21.
Глава 5. Указатели и память
Адреса памяти и указатели в Go: оператор &, тип *T, разыменование, передача по значению против передачи через указатель, зачем указатели вообще нужны и как безопасно обращаться с nil. Всё на …
Глава 4. Функции
Функции в Go: объявление и параметры, множественный и именованный возврат, variadic-параметры, функции как значения, анонимные функции и замыкания, defer, рекурсия и callback-и. Разбираем, зачем каждый механизм нужен на практике.
Глава 3. Управляющие конструкции: for, if, switch
Изучаем единственный цикл Go for во всех его формах, перебор range, новинку for i := range n из Go 1.22, ветвления if/else с init-выражением и switch с несколькими вариантами, fallthrough …