RubyGems Digest 2020·09
Большая подборка информации о библиотеках языка Ruby за сентябрь 2020 года. Новости, включая русскоязычные источники. А так же полезные мнения и опыт разработки.
Новости
Вышел Ruby 3.0.0 Preview 1. В нём добавляются статическая типизация RBS, улучшение производительности с помощью MJIT, параллельные вычисления на модели акторов с помощью Ractor, планировщик для перехвата блокирующих операций и другое. Новую версию уже можно попробовать в Docker.
4–5 сентября прошла японская конференция RubyKaigi Takeout 2020. Многие доклады представлены на английском. Больше ссылок на видео — ниже, в Полезных материалах.
8 сентября прошла итальянская конференция RubyDay 2020.
12–13 сентября прошла украинская конференция RubyC 2020.
В Rails 6.1 добавляется опция --minimal.
В Ruby 2.8 будет добавлен новый однострочный синтаксис объявления методов (без слова end)
RWpod 35 выпуск
В Ruby добавляется экспериментальная поддержка правостороннего присваивания
В Rails добавляется поддержка сохранения часовых поясов для ActiveJob
Система тестов II: надежное браузерное Rails-тестирование с помощью SitePrism
RWpod 36 выпуск
Sinatra v2.1.0
В класс Symbol добавят метод name для получения неизменяемой строки с именем символа
Вышли Rails 5.2.4.4 и Rails 6.0.3.3
Написание web-сервера на основе Ractor
RWpod 37 выпуск
В Ruby добавляется пересылка списка аргументов с выделением ведущих аргументов
Мы сделали Puma быстрее с помощью Sleep Sort
Rails Concerns: использовать Concern или нет
RWpod 38 выпуск
Вышел Ruby 3.0.0 Preview 1
В Rails 6.1 объявляются устаревшими команды rails db: structure: dump и rails db: structure: load
В Ruby объявляется устаревшим класс DateTime
Новинки
Classy Hash 1.0.0 — валидатор схем для хэшей
Cloudflare: Rails 1.0.0 — библиотека для правильной настройка Rails для CloudFlare
Новые версии
Puma 5.0.0 — HTTP-сервер для Ruby/Rack-приложений.
Browser 5.0.0 — определитель браузера, включает интеграцию с ActionController.
Airbrake 11.0.0 — онлайн инструмент для отслеживания исключений в приложениях.
docker-api 2.0.0 — гем, предоставляющий объектно-ориентированный интерфейс для Docker Engine API
Couchbase Ruby Client 3.0.0 — клиент для Couchbase
Coverband 5.0.0 — измерение использования кода на продакшене со счетчиком для каждой строки.
Castle-rb 5.0.0 — защита аккаунтов от взлома.
Foreman-tasks 3.0.0 — движок управления задачами для системы управления инфраструктурой Foreman
Blocks 4.0.0 — библиотека для работы с блоками MVC-представлений
Hawkular Client 5.0.0 — клиент для инструментария мониторинга Hawkular
Waterdrop 2.0.0 — библиотека для простой отправки сообщений в Kafka с валидацией
Ruby-bandwidth 3.0.0 — интеграция с сервисом звонков и сообщений Bandwidth
Rgeo-shapefile 3.0.0 — компонент для чтения файлов геопространственных данных библиотеки RGeo
Stripe-rails 2.0.0 — движок для интеграции с платежной инфраструктурой Stripe
Обновления
StimulusReflex 3.3.0 — frontend-библиотека для создания современных реактивных real-time приложений на привычном Ruby on Rails
Webpacker 5.2.0 — надстройка над webpack для управления Javascript-модулями в Rails-приложениях.
Sinatra 2.1.0 — DSL для создания web-приложений.
Rack: Protection 2.1.0 — защита от распространненых способов web-атак.
Unicorn 5.7.0 — HTTP-сервер с Rack-интерфейсом
Haml 5.2.0 — шаблонизатор для HTML.
WebMock 3.9.0 — библиотека для заглушек и установки ожиданий на HTTP-запросы в Ruby.
Rack-mini-profiler 2.1.0 — профайлер, замеряющий скорость отображения каждой страницы
New Relic Ruby Agent 6.13.0 — агент New Relic для мониторинга производительности.
Faker 2.14.0 — порт Perl-библиотеки Data: Faker для генерации фейковых данных
Bunny 2.17.0 — клиент для RabbitMQ.
Ruby_parser 3.15.0 — парсер языка Ruby написанный на чистом Ruby, позволяющий преобразовывать код в изменяемые s-выражения.
Brakeman 4.10.0 — сканер уязвимостей, преимущественно для Ruby on Rails
Active Admin 2.8.0 — фреймворк для создания админки к вебсайту
Regexp: Parser 1.8.0 — библиотеки для токенизации, парсинга и преобразования регулярных выражений
RuboCop Rails 2.8.0 — автоматический контроль соглашений по наилучшему стилю кода в Rails-приложениях
Groonga-command 1.5.0 — библиотека команд для системы поиска Groonga
Kiba 3.5.0 — легковесная ETL для Ruby
Arbre 1.3.0 — DSL для описания HTML
iCalendar 2.7.0 — библиотека для работы с календарем в формате iCalendar
Gon 6.4.0 — получение Rails-переменных в Js-коде
Ancestry 3.2.0 — организация записей в ActiveRecord в древовидной структуре
hamlit 2.13.0 — высокопроизводительная реализация Haml
Scientist 1.5.0 — библиотека для осторожного рефакторинга критических участков кода
Grape-swagger 1.3.0 — автогенерация документации для API на Grape
Invisible Captcha 1.1.0 — библиотека для защиты приложения от спам-ботов
Down 5.2.0 — инструмент для гибкого, потокового и безопасного скачивания удаленных файлов
Racecar 2.1.0 — дружественный фреймворк для Kafka-обработчиков
Travis 1.10.0 — консольный клиент и библиотека для Travis CI
March_hare 4.3.0-java — RabbitMQ-клиент для JRuby созданный на основе официального клиента для Java
Rpush 5.1.0 — сервис push-уведомлений
Unicode: Emoji 2.6.0 — библиотека для сопоставление юникод-текста с эмодзи
karafka 1.4.0 — фреймворк для работы с Kafka
Lita 4.8.0 — чат-бот с плагинами для различных чат-сервисов
Closure Tree 7.2.0 — простая и эффективная реализация иерархии в ActiveRecord-моделях
pusher-fake 2.2.0 — имитация Pusher-сервера для разработки и тестирования
Leaflet-rails 1.7.0 — привязка фронтенд библиотеки географических карт leaflet.js к Rails
Rails Multisite 2.5.0 — обеспечение нескольких баз данных для Rails-приложений
Ibandit 1.2.0 — библиотека для проверки и действий с IBAN
Blind Index 2.2.0 — безопасный поиск в зашифрованных полях базы данных
Validators 3.4.0 — дополнение некоторых полезных ActiveModel/ActiveRecord валидаторов
Signalfx 3.1.0 — клиент для сервиса мониторинга SignalFx
Полезные материалы
Компания Evrone провела марафон кейсов, часть из которых посвящена Ruby или связана с ним.
Ключевые идеи из интервью с создателем Ruby on Rails (а так же полный текст интервью с Дэвидом Ханссоном на русском).
Медиа-портал на Ruby-движке
Vexor — что нужно знать, если создаёте продукт для разработчиков?
Связываем обычные и криптовалюты с Cryptopay
Оцифровываем консультанта с планшетом
Work&Play — превращаем мотивацию персонала в игру
Quiv — конвертируем знания в помощь благотворительным фондам
Айдентика конференции RubyRussia
Программирование только классами
Реактивное Rails-приложение со StimulusReflex
Вышел StimulusReflex v3.3
Переход с JavaScript на Ruby
Пришло время запускать Ruby в Web через WebAssembly?
Почему и как транспилировать Ruby?
Ускорение работы Rack и Rails с TruffleRuby
Разработка Dreamcast-приложений и игр на mruby
Когда разработка на Ruby on Rails — правильный выбор?
Почему Ruby on Rails по-прежнему хороший выбор для разработки в 2020 году?
Параллельные вычисления в Ruby 3 preview
Синтаксис Set в Ruby 3
Денежные расчеты в Ruby
11 частых вопросов по RubyCop
Повышение производительности с Ruby 3.0 JIT
Профилирование — очевидный шаг после замеров производительности вашего кода
Сложность ActiveRecord-транзакций
В процессе деконструкции: состояние монолита Shopify
dry-system — для чего? от ручного перечисления зависимостей к полномасштабной архитектуре
Разработка через тестирование, мой упрощенный подход
Разница при тестировании между Mocks, Stubs и Spies
5 лучших библиотек для тестирования для создания приложений на Ruby on Rails
Написание хороших пояснений к тестам
Композиция функций: Python vs Ruby
Разделяем монолит
Современные альтернативы командной строки
Введение в паттерны и антипаттерны Ruby on Rails
Наиболее распространенные ошибки в разработке на Ruby on Rails (и как их избежать)
Непрерывная интеграция для Ruby
Управление RubyGems и Bundler с помощью Ansible
Автоматизация подготовки и развертывания Rails-сервера с помощью Ansible и Capistrano
Что нового в Sidekiq, выпуск 2020
Контрибьютинг в Тор
Советы и приемы защиты вашего приложения от ссылочных уязвимостей
10 лучших технических подкастов (по выбору Rails-сообщества)
Объяснение принципов SOLID на примерах
Наиболее полезные библиотеки для API на Ruby on Rails
Предыдущий Ruby Digest