Блог Golang | OTUS
Посты
Распараллеливание вычислений в Go

Когда есть возможность разбить вычисление на отдельные части, которые можно выполнить независимо, тогда вычисление в Go можно распараллелить. При этом потребуется использовать каналы для сигнализирования о том, что та или иная часть вычисления завершается.

Ограничиваем скорость операций в Golang

Для ограничения скорости операций в единицу времени в языке программирования Go можно использовать time.Ticker. Это неплохо работает для скоростей до нескольких десятков операций в секунду. Если же речь идет о более высоких скоростях, тогда лучше отдавать предпочтение ограничителю скорости сегмента токенов, например, Limiter из golang.org/x/time/rate.

Каналы в Go

В языке программирования Go каналами существуют типизированные «каналы», по которым разработчик может посылать и получать значения, используя для этого оператор <-. Давайте посмотрим, как это выглядит на практике.

Функция panic в Go

Как известно, обычный способ сообщения об ошибке вызывающей стороне заключается в возврате error как дополнительного возвращаемого значения. Хорошо известным примером является и канонический метод Read, возвращающий число прочитанных байтов и error. Но что делать, когда ошибка не может быть возвращена?

Дженерик-структуры данных в Go

В этой статье мы рассмотрим двоичное дерево -- простейшую структуру данных, созданную на основе дженериков. Мы реализуем дерево с функцией сравнения, в результате чего требований по типу элементов не будет:

Golang time и Golang date: форматирование даты и времени в Go

В языке программирования Golang для выполнения операций над временем используется стандартный пакет time. Используя его, можно получить текущие параметры времени и даты, отформатировать дату в строку, создать таймер либо бегущую строку, cконвертировать временные зоны.

Исследуем утечки памяти в Go с помощью pprof

Утечки памяти в Go способны принимать разные формы. Как правило, мы считаем, что это баги, однако истинная причина проблем может быть заложена ещё на стадии проектирования. Рассмотрим распространённые примеры появления проблем с памятью: