Автоматизируй это
Мир вокруг меняется, но кое-что остаётся неизменным. Мы продолжаем оставаться на связи и писать об интересных новостях и полезных инструментах: у нас десятки проектов в разработке и мы держим руку на пульсе технологий. В нашем апрельском выпуске мы расскажем, как грамотно настроить виртуальную среду разработки для 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 проектах и выступления на конференциях, а расти в грейдах можно с помощью честной системы проверки навыков и менторства.