Холодные игрушки

22 июня 2022
Холодные игрушки гоферов

Отвлекитесь от горутин и каналов. Съешьте ещё этих мягких французских булок да выпейте чаю. И почитайте июньский дайджест Evrone для Go-разработчиков. 

Звёздный месяц Go

Важное событие — очередной рубеж в 100 000 звёзд пройден. Большинство из нас использует GitHub каждый день и система рейтинга вполне отражает интерес к языку. Такими темпами Go войдёт в топ-30 репозиториев. Чем выше рейтинг, тем больше людей, так или иначе, начинают интересоваться языком и этим способствуют его развитию.

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

Взгляд на Go 1.19b1

TL:DR Серьёзных обновлений не будет, язык продолжает развиваться.

Будущая версия 1.19 дебютирует на новой процессорной архитектуре Loongson 64-bit. Это такая китайская альтернатива процессорам от Intel и AMD, фактически видоизменённый MIPS. С учётом высокой популярности Go в Азии, такое развитие было вполне ожидаемым. Кстати, на RISC-V обновление также скажется благотворно. По предварительным данным производительность вырастет на 10 процентов.

Модель использования памяти будет изменена и приведена в соответствие с той, которая используется в других популярных языках: C, C++, Java, JavaScript, Rust и Swift. Обновление добавит новые типы в sync/atomic, что упростит работу с атомарными элементами.

Документация не просто важна, она необходима. Улучшение комментариев к пакетам сделает восприятие информации значительно лучше. В будущей версии появятся ссылки, списки и более четкие заголовки.

Ещё из значимых изменений появилось новое unix-ограничение сборки. В версии 1.19 оно срабатывает, если целевая операционная система соответствует одному из значений: aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd или solaris. Вероятно, в будущем появится поддержка других операционных систем.

Внедряем зависимости по-новому

Отрадно видеть, что появляется всё больше пакетов, реализованных с помощью дженериков, появившихся с версии 1.18. Для реализации паттерна внедрения зависимостей вместо традиционного uber/dig можно попробовать samber/do. Этот тулкит построен не на рефлексии, а на дженериках — следовательно типобезопасен.

Поддерживаются следующие функции служб:

  • регистрация,
  • вызов,
  • проверка работоспособности,
  • отключение.

Сами по себе службы могут быть анонимными или именованными. Поддерживаются оба способа запуска — неотложный и «ленивый». С функцией разрешения графа зависимостей и инжектором по-умолчанию такой тулкит без проблем справится со своими обязанностями. Документацию и примеры использования можно найти по ссылке.

Поймай меня, если можешь

Что-то пошло не так и дальнейшее исполнение программы потеряло смысл. Закрыть приложение? Продолжить работу и проигнорировать проблему? Решение такой задачи называется обработкой исключительной ситуации. В большинстве языков для этого предусмотрен механизм try-catch-finally. В будущей версии языка (Go 2) эту конструкцию предлагали к рассмотрению, но в итоге так и не приняли.

Философия Go декларирует важность правильной обработки ошибок, так что разработчики языка не стали их делать исключениями. Вместо этого используются множественные возвращаемые значения. С одной стороны это хорошо, ведь разработчик сможет сконцентрироваться на написании надёжного кода. Но с другой стороны это делает код более громоздким.

Не став ждать у моря погоды, некоторые разработчики решили самостоятельно реализовать библиотеку для обработки исключений в привычном стиле try-catch-finally. Так что, если вам удобнее отлавливать исключения таким способом, то можете делать это уже сейчас.

Митапы

Онлайн

Летний GO meetup

29 июня  2022 19:00

Рады сообщить, что у нас запланирован очередной Go Meetup, который пройдёт 29 июня . Спикеры из «Авито», «МойОфис» и «Программный регион» расскажут и на примерах покажут, как кастомизировать NeoVim, что делать с потреблением оперативной памяти, и так ли показательны бенчмарки.

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

 

Регистрация

Обучение

Онлайн

Курс Python в Evrone Academy

60 учебных модулей 

Если вы думаете о смене работы или хотите стать частью нашей команды, но у вас недостаточно коммерческого опыта, то теперь можно учиться прямо в Evrone. А после — попасть к нам на оплачиваемую стажировку.

Основа обучения в Evrone Academy — наши высокие требования к разработчикам и опыт в проектах. Мы записали лекции, подготовили текстовые версии, добавили практические задания — это позволит вам подтянуть знания до middle-уровня. На стажировке мы дополним теорию практикой, а после — добро пожаловать на «боевой» проект.

Сейчас академия доступна в режиме early access — можно пройти базовые части по Python или Ruby. Но мы уже готовим новые материалы и практические задания, подписывайтесь на нас в соцсетях, чтобы не пропустить обновления!

Регистрация

Вакансии

Удаленка / Офис

Evrone 

Мы открыты для новых Go-разработчиков. В Evrone можно работать удалённо с первого дня, мы поддерживаем и оплачиваем участие в Open-source проектах, а расти в грейдах можно с помощью честной системы проверки навыков и менторства.

Подробнее

Подписаться
на Digest →
Важные новости и мероприятия без спама
Технологии которыми вы владеете и которые вам интересны
Ваш адрес электронной почты в безопасности - вот наша политика конфиденциальности.