Автоматизируй это

04 апреля 2022
Автоматизируй это

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

Ruby on Whales

Злые марсиане в очередной раз порадовали отличной статьёй. Разработка на RoR подразумевает наличие виртуальной среды в том или ином виде. Такие инструменты, как Vagrant весьма просты, но требуют значительного количества системных ресурсов. Фактически это всего лишь удобный для разработчиков способ создания и управления виртуальными машинами на базе того же VirtualBox.

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

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

Не только линтер

Создатели RuboCop явно были поклонниками одноимённого фантастического боевика из далёкого 1987 года, а в описании репозитория есть отличная цитата из этого фильма. Это не просто линтер, помогающий выполнить проверку качества кода и соблюдение правил форматирования. Утилита RuboCop, словно главный герой фильма, может работать ещё и мощным средством обеспечения безопасности. 

В целом, линтеры уже давно превратились в универсальные комбайны, что, с одной стороны, идёт им на пользу, а с другой — вызывает безудержное желание это ПО отключить из-за огромного количества предупреждений, которые в реальном мире приходится обрабатывать. RuboCop не исключение, и если вы запускаете его впервые, то точно с этим столкнётесь.

Так что рекомендуем перед использованием заглянуть в конфигурационный файл .rubocop.yml и отключить неиспользуемые функции. Ну а если почитать документацию, то можно легко задать собственные шаблоны поиска файлов, настроить относительные пути и указать дополнительные параметры.

Сравнивать и защищать

Намеренное внесение вредоносного кода в node-ipc, удаляющего файлы пользователей из определённых географических локаций, серьёзно повлияло на отрасль. Внезапно оказалось, что Open source не такой уж и безопасный. Так что заслуженное внимание получили такие инструменты, как gem-compare. Эта утилита умеет сравнивать версии gem и отслеживать внесённые изменения.

Пользу этого переоценить сложно. Во-первых, можно отследить зависимости и лицензионные изменения. Во-вторых, защититься от проникновения нежелательного кода в проект. И напоследок посмотреть на новые фичи обновления без дополнительного поиска информации.

Infinity Gauntlet

Помните такой любопытный артефакт из вселенной Marvel? Персонаж, обладающий им, щелчком пальца смог стереть половину населения планеты. В отличие от него утилита thanos так не умеет. Но зато она способна значительно упростить жизнь разработчикам, которым необходимо скомпилировать код на языке Ruby в человекочитаемый код на языке Go.

Разумеется, при использовании такого ПО следует понимать, что идеального преобразования не будет и в некоторых случаях рефакторинга не избежать. Так, например, явно возникнут сложности с обработкой исключений. Но всё же в большинстве случаев инструмент вполне справляется с большинством возложенных на него задач. Так что однозначно полезная штука.

Обучение

Онлайн

Курс Python в Evrone Academy

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

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

 

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

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

Регистрация

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

Онлайн

Ruby Quiz

до 25 апреля 2022

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

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

Среди тех, кто правильно ответит на все вопросы мы разыграем Яндекс. Станцию.

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

Митапы

Онлайн

Ruby meetup №17

27 апреля 2022  19:00

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

Регистрация

Вакансии

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

Evrone 


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

Подробнее

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