Получи случайную криптовалюту за регистрацию!

Контекст в golang - крайне полезная штука. У него есть 2 основ | dev notes

Контекст в golang - крайне полезная штука.
У него есть 2 основных назначения: передача параметров в нижевызываемые методы, и возможность сигнализировать всем, кто использует какие-либо ресурсы, что их пора освобождать - мы завершаемся. Называется этот процесс graceful shutdown.

Статей и по context, и по gs написано в избытке, но лично у меня не складывалась полная картина когда и в какой вариации всё это правильно юзать. Но, кажется, сложилась. Официально руководство, конечно, почитать стоит, но я приведу те материалы, которые, на мой взгляд, интересней.

Где-то я увидел ссылку на вот эту статью - https://golangbyexample.com/using-context-in-golang-complete-guide/, где автор утверждал, что тут пакет context описан лучше, чем в официальном руководстве и других гайдах. И, я с автором согласен, описание отличное.

Из русскоязычных материалов более-менее практический пример показан в этом ролике:

Автор показывает и применение контекста, и связку его с gs, и не совсем очевидный пример блокировки, когда всё может пойти не по плану.

Пытаясь структурировать информацию, посмотрел ещё доклад от badoo про graceful shutdown и его косяки при интеграции с кубером -

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