Начал недавно копаться в Go для одного пет-проекта, и вот столкнулся с тонкостями `context.Context`. Особенно напрягает, когда контекст нужно передавать через несколько уровней абстракций, и вот тут начинаются вопросы: как правильно отменять операции, как передавать значения, чтобы избежать утечек ресурсов. Ну, и насколько вообще это все оправдано по сравнению с другими подходами к асинхронности в программировании?
Интересно услышать от опытных гошников, какие паттерны вы используете, чтобы держать асинхронность под контролем и не утонуть в этом контексте. Есть ли какие-то неочевидные моменты или, может, лайфхаки, которые упрощают жизнь?
Комментарии 7