GopherCon Russia 2020

GopherCon Russia 2020 все ближе. Прошлая кнфа была просто шикарная, эта будет не хуже.

В этом году GopherCon Russia в Москве пройдет 28 марта. Обещают очень много гоферов(>= 800). Все это будет проходить один день, в 3 потока. Куча общения, стенды лучших кампаний и грандиозное автепати. В этом году приедет Dave Cheney! Юху! Ещу будут Mark Bates, Елена Морозова, Elias Naur и много других.

Инлайнинг defer

Перевод “Inlined defers in Go".

defer в Go позволяет запланировать вызов функции перед выходом из основной функции. Это не обязательно должна быть одна функция - можно запланировать вызов нескольких функций. Как правило, defer используется для очистки ресурсов, завершения задач и тд. Такие запланированные функции хорошо использовать для обслуживания. Например, с помощью defer мы точно не забудем закрыть файл.

Пишем свой BitTorrent клиент на Go

Перевод “Building a BitTorrent client from the ground up in Go

Что происходит с момента визита на thepiratebay и появлением mp3 файла на вашем компьютере? В этом посте мы реализуем BitTorrent протокол на достаточном для скачивания образа Debian уровне. Можете сразу посмотреть исходный код и пропустить все подробные объяснения. Можете начинать с исходного кода и потом переходить к подробным объяснениям.

Безопасное использование unsafe

Перевод “Safe use of unsafe.Pointer

С помощью пакета unsafe можно делать множество интересных хаков без оглядки на систему типов Go. Он дает доступ к низкоуровневому АПИ почти как в C. Но использование unsafe - это легкий способ выстрелить себе в ногу, поэтому нужно соблюдать определенные правила. При написании такого кода очень легко совершить ошибку.

В этой статье рассмотрим инструменты, с помощью которых можно проверять валидность использования unsafe.Pointer в ваших Go программах. Если у вас нет опыта использования пакета unsafe, то я рекомендую почитать мою прошлую статью.

Внедрение зависимостей с Fx

Перевод статьи “Simple dependency injection in Go with Fx

В Uber очень легко создавать новые приложения. Немалую роль в этом играет Fx - удобная библиотека для внедрения зависимостей. В статье я кратко опишу проблему внедрения зависимостей, как Fx справляется с этой проблемой и покажу пример приложения, которое использует преймущества Fx.