Thank Go!

Все о чистом коде на Go.

Интерактивный тур по Go 1.25

Фейковые часы, новый GC, бортовой регистратор и многое другое.

rand.Text

Криптографически случайная строка.

Метод-значение

Функция с приколоченным к ней получателeм.

Пропуск нулевых значений в JSON

omitzero на замену omitempty.

SHA-3 и его друзья

Больше криптографии.

Больше итераторов в Go 1.24

Lines и компания.

Контекст для тестов

Теперь не забудете его создать.

B.Loop

С ним писать бенчмарки — одно удовольствие.

os.Root

Ограничивает операции с файловой системой.

Скукоживание карт в Go

Карта ни за что не отдаст вам память.

Конкурентно-безопасная карта

Быстрее, надежнее и приятнее на ощупь.

Швейцарские таблицы

Сделаем карты снова великими.

runtime.AddCleanup

Освобождаем занятые ресурсы.

Слабые указатели

Им не под силу спасти значение от сборщика мусора.

Псевдонимы generic-типов

Как обычный псевдоним, только параметризован типом.

Заглушить логи

Через io.Discard.

cmp.Or

Редкий пример сахарка в Go.

README для начинающих разработчиков

На редкость толковая книга.

Ранний возврат

Он лучше лесенки if-ов.

Большая крыса Go

Это не шиза, речь о big.Rat.

Статический HTTP-сервер

На Go вместо Python.

Канал завершения

Сигнализируем о завершении горутины.

http.Cookie

Про печеньки.

os.CopyFS

Скопировать каталог одной строчкой.

Пакет unique

Экономим память на дубликатах.

Пустышки в Go

Разрешены, но не особо полезны.

Курс «Многозадачность в Go»

Осваиваем многозадачное программирование на практике.

Таймеры в Go 1.23

Детективная история.

Полносрезное выражение

Меняем емкость при нарезке.

Пустой срез vs. nil-срез

Чем отличаются и как с ними работать.

Запускаем 100К горутин

Сколько можно запустить горутин и от чего это зависит.

Приемчики форматирования в Go

Поля структуры, тип значения, индекс аргумента.

range по функциям

Что это и зачем.

Go Generics

Урок по дженерикам в Go.

nil-получатель метода

Метод можно вызвать на пустом указателе.

Интерфейсы и nil

Как работают пустые (и не очень) интерфейсы в Go.

Замыкание = гибкость

Универсальный инструмент для многих ситуаций.

Метод на значении / указателе

Когда и что можно вызвать.

Пишем менеджер пакетов

Так, чтобы не потратить на это целый год.

Встроенные функции в Go 1.21

Выбираем минимальное/максимальное значение и очищаем контейнеры.

Избранные фичи Go 1.20

Множественные ошибки, причина отмены контекста, новые форматы дат и прочее.

Композиция атомиков в Go

Разбираем атомарность и предсказуемость операций в многопоточной среде.

Идемпотентный Close в Go

Как сделать освобождение ресурсов безопасным.

Красавица и чудовище. Обработка ошибок в Go

Ошибки в го особенно уродливы, но это неспроста.