Отдам Gem в добрые руки

03 февраля 2022
Отдам Gem в добрые руки

Начался февраль 2022 года, а это значит что мы в Evrone уже подготовили для вас самые интересные материалы из мира разработки на Ruby. Сегодня расскажем, как в RubyGems хотят победить проблему с заброшенными пакетами. Еще поговорим про новый механизм подписи gem и о том, насколько круто можно использовать метапрограммирование в Ruby. 

Заброшенные Gem’ы

«‎Всё — жене» — именно такое завещание Карла Тауша вошло в Книгу рекордов Гиннесса, как самое короткое завещание в мире. Увы, как и люди, проекты не всегда вечны. Приоритеты меняются, интерес к дальнейшему развитию угасает. Иногда банально не хватает рук, чтобы реализовать задуманную идею. В какой-то момент такой проект просто становится заброшенным.

С другой стороны, множество людей продолжают использовать такие оставленные пакеты в своих проектах и им важно дальнейшее развитие. Часто можно встретить посты в Twitter или на Github с просьбами о дальнейшей поддержке и доработке. Такие проекты порой отправляются в виртуальное убежище CodeShelter, где могут обрести нового мейнтейнера.

Чтобы сократить количество «abandoned gem» RubyGems.org решили внедрить формальный процесс, ускоряющий поиск текущего владельца пространства имен. Сейчас это можно сделать через запрос в службу технической поддержки. Так что если вы внезапно являетесь обладателем такого или же, наоборот, имеете возможность помочь в работе над таким проектом — все дороги открыты.

Новый механизм подписи RubyGems

Для RubyGems существует механизм подписи пакета. Его основная задача — обеспечение защиты. Подпись должна гарантировать, что gem был создан конкретным разработчиком и безопасен для использования. Тем не менее, существующий механизм громоздкий и неудобный в использовании.

Let’s Encrypt поменял мир, сделав получение и использование TLS-сертификатов простой и удобной процедурой. Такую же миссию планирует совершить новый механизм подписи gem, основанный на тулките sigstore. Несколько дней назад был представлен RFC, в деталях описывающий процесс подписи.

TL;DR — предполагается, что при исполнении gem build дополнительно будет вызываться окно авторизации в sigstore с выбором поставщика удостоверений (например, тот же Github). После разового прохождения авторизации процесс подписания будет выполнен полностью автоматически. Последующие сборки будут также подписаны, уже без необходимости авторизации, с помощью выбранного поставщика. 

Возможность подписи будет не только в процессе сборки, но и после её завершения, например, gem signatures --sign GEMNAME. Надеемся, что такой подход станет популярнее существующего и будет активно использоваться разработчиками.

Решение Wordle в Ruby

Хайп по поводу ежедневной игры в слова, Wordle, не утихает. Люди со всего мира с удовольствием решают эту словарную головоломку. Сыграть в неё можно только раз в сутки, что только сильнее подогревает интерес игроков. Kevin Newton, штатный инженер Shopify, опубликовал в своем блоге код на Ruby, позволяющий максимально быстро выиграть.

Ключевой момент здесь — игра не пытается замаскировать словарь (например, за API). Так что определить перебором искомое слово не составляет труда. Код достаточно интересен для обучения, он прекрасно описывает приёмы работы с отдельными словами и вводом/выводом. Ruby поистине уникальный язык, ведь у него самый красивый синтаксис.

Практическое метапрограммирование

Ruby очень динамичен и поэтому у разработчика есть возможность широко использовать метапрограммирование. Если вы никогда не применяли этот приём, то советуем прочитать свежую статью на wasabigeek.com. Автор статьи на примере крошечной библиотеки minitest/mock рассказывает как именно можно применять метапрограммирование.

Разумеется, это очень мощный прием, но не лишённый недостатков. Метапрограммирование может вызвать существенную потерю производительности и ухудшить читаемость кода. Иногда этим можно пожертвовать при решении сложных задач. Если же вам хочется узнать о метапрограммировании на Ruby ещё больше, то советуем потратить 10 минут своего времени и прочитать отличную статью сербского fullstack-разрабочика Nikola Todorovic.

Конкурсы для разработчиков

Онлайн

Ruby Quiz

до 28 февраля 2022

Evrone — это, прежде всего, сильная Ruby-команда. Мы хорошо разбираемся в Ruby и предлагаем вам тоже проверить себя в нашем новом квизе.

Его составляли наши опытные разработчики, так что придётся хорошо подумать. Внутри семь вопросов и несколько вариантов ответов, из которых лишь один правильный.

Среди тех, кто правильно ответит на все вопросы мы разыграем приятные призы: Apple AirPods Pro, Яндекс. Станцию и увлажнитель от Electrolux.

Принять участие

Митапы

Онлайн

Ruby meetup №17

30 марта 2022  19:00

Рады сообщить, что у нас запланирован Ruby Meetup, который пройдёт 30-го марта. Все доклады будут традиционно предзаписаны в студийном качестве 4К, а вести доклад и помогать вам допрашивать спикеров в прямом эфире будет Григорий Петров, Ruby-разработчик и организатор RubyRussia. Детальная информация о мероприятии будет опубликована позже, следите за нашими новостями.

Регистрация

Вакансии

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

Evrone 

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

Подробнее

 

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

 

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