Ruby/Rails дайджест #22: релиз Mastodon 2.5, очередное обновление IDE RubyMine, запуск нового подкаста The Yak Shave

Всем привет!

Начнем с того, что в сентябре вышла версия 2.5 популярной open-source платформы для создания социальных сетей Mastodon. Компания Phusion собирается прекратить поддержку Ruby 1.8 в веб-сервере Passenger. Не пропустите статьи о создании Ruby-приложений при помощи фреймворка Sinatra. Также обратите внимание, что в конце августа инструмент мониторинга приложений Honeybadger был обновлен до версии 4.0 — почитайте, какие функции добавились.

Почитать

The Problems With Validating ActiveRecord Models and Why State Validation Is a Bad Idea — читайте, почему лучше избегать валидации в моделях ActiveRecord.

Open-sourcing checker jobs — почему компания Drivy решила сделать исходный код гема CheckerJobs общедоступным.

How I got my first pull request merged on Rails-core — на примере pull request в ядро Ruby on Rails, автор показывает, как участвовать в разработке OSS.

Understanding Transducers in Ruby — разбираемся, что такое transducers в Ruby.

A few lesser-known but useful Ruby (on Rails) methods: Array — автор описывает несколько полезных методов при работе с Array в Ruby on Rails.

Procs vs Callables in Ruby — разбираемся, в чем разница между proc и callable в Ruby.

Monad laws in Ruby — статья для тех, кто использует монады, но не до конца понимает их суть.

101: Advanced OOP Structure in Rails Practice — автор на примерах показывает, как оптимизировать структуру приложения на Rails.

What makes a good changelog? — советы, как вести журнал изменений правильно.

RubyMine Refactorings: Overview & Improvements — узнайте, как инструменты для рефакторинга доступны в IDE RubyMine.

Building My First Sinatra-based Ruby App: Thoughts and Wrap-up — автор делится опытом создания приложения на фреймворке Sinatra.

Polyglot content in a rails app — как перевести контент в Rails-приложении на разные языки.

Dropping RHEL6, Debian 7 and Ruby 1.8 support? — компания Phusion собирается прекратить поддержку Ruby 1.8 в веб-сервере Passenger.

Introducing Priora: An Object Prioritization Utility Gem for Ruby — автор представляет гем Priora для приоритизации объектов.

How to Do Web Scraping with Ruby — что такое web scraping и как его реализовать в Ruby.

Securing your Ruby and Rails Codebase — какие инструменты помогают обеспечить безопасность приложений на Ruby.

Updated Github Integration — CI/CD платформа Codeship обновила интеграцию с GitHub; узнайте, что изменилось.

Why Reversible Migrations Are Important and How to Write Them — узнайте, что такое обратимые миграции и как их реализовать в Ruby on Rails.

How we optimise performance for our clients’ Ruby on Rails applications — автор делится опытом оптимизации приложений на Ruby on Rails.

Отчеты об обновлениях фреймворка Ruby on Rails:

Подборка от Andy Croll

Don’t Loop & Do Work in Jobs — автор показывает, как оптимизировать выполнение фоновых задач в приложении.

Careful with present? when using ActiveRecord scopes — почему при работе с коллекциями ActiveRecord вместо метода #present? лучше использовать #any? или #exists?.

Using pluck can save a bunch of memory — как снизить использование памяти при помощи метода #pluck.

Подборка от AppSignal

Closures in Ruby: Blocks, Procs and Lambdas — как работают функции-замыкания в Ruby: blocks, procs и lambdas.

Differences Between #nil?, #empty?, #blank?, and #present? — не забываем, в чем разница между методами #nil?, #empty?, #blank?, и #present? в Ruby on Rails.

#to_s or #to_str? Explicitly casting vs. implicitly coercing types in Ruby — в чем отличие между явным и неявным преобразованием типов в Ruby.

ActiveRecord vs. Ecto Part One — первая часть цикла, в котором автор сравнивает ActiveRecord в Ruby и Ecto в Elixir.

Подборка от Arkency

Command sourcing — why I am considering it — что такое command sourcing и в каких случаях стоит его использовать.

Event scout rule — автор рассказывает, зачем добавлять логику publishing event в реализуемые функции.

Big events vs Small events — from the perspective of refactoring — какие события лучше использовать с точки зрения рефакторинга.

3 ways to make your ruby object thread-safe — как подготовить объекты в Ruby к использованию в многопоточной среде.

Подборка от BigBinary

Uploading files directly to S3 using Pre-signed POST request — автор показывает, как реализовать загрузку файлов из backend API на Rails в хранилище Amazon S3 при помощи pre-signed POST запроса.

Using parametrized containers for deploying Rails micro services on Kubernetes — учимся использовать параметризованные контейнеры при развертывании микросервисов на Rails при помощи Kubernetes.

Подборка от Leszek Zalewski

How to: Road to fast and stable test suite — как ускорить тестирование приложения при помощи гема Knapsack.

How to: Get most of the database cleaner — подробная инструкция, как правильно настроить гем Database Cleaner.

Подборка от Mehdi Farsi

Symbol in Ruby — что представляет из себя символ в Ruby.

The redo Keyword in Ruby — как использовать redo в циклах, перечислениях и блоках.

refine and using Methods in Ruby: Part I — что такое monkey patching в Ruby и как использовать методы refine и using.

The return Keyword in Ruby — разбираемся с ключевым словом return в Ruby.

Alias in Ruby — детальный разбор alias в Ruby.

Статьи о шаблоне проектирования Singleton и его реализации в Ruby:

Подборка от Naturaily

Value based pagination in Ruby on Rails — что такое value-based pagination и как реализовать ее в приложении на Rails.

How to Create Paid Order Using Shopify API — если вы работаете над онлайн-магазином, эта статья научит вас создавать paid order при помощи Shopify API.

Подборка от Ombu Labs

Refactoring with Design Patterns — The Template Pattern — в чем заключается шаблон проектирования Template Method и как он реализуется в Ruby.

Step up the security of your Rails app | Part 1 — узнайте, как обезопасить приложение на Rails от таких угроз, как command injection и SQL injection.

Подборка от reinteractive

PostgreSQL vs MySQL — почему для Ruby on Rails приложений лучше использовать базу данных PostgreSQL.

Using Ruby Closures to simulate classes — учимся использовать замыкания для создания объектов без классов.

Подборка от RubyGuides

Rack Explained For Ruby Developers — что такое Rack и зачем он используется в приложениях на Ruby.

How to Use The Ruby Super Keyword — как использовать ключевое слово super в Ruby.

How to Use Ruby Conversion Methods — подробный туториал о методах преобразования в Ruby.

The Ultimate Guide to Ruby Gems, Gemfiles & Bundler — полезная статья о гемах — как создать гем, что такое Bundler и Gemfile и как ими пользоваться.

Туториалы

Ruby goes Serverless! — Apache OpenWhisk adds native support for Ruby — serverless-платформа Apache OpenWhisk теперь поддерживает Ruby — учимся ее настраивать.

Migrating PostgreSQL standalone instance to Aurora (Amazon RDS) — подробная инструкция, как произвести миграцию инстанса PostgreSQL на Amazon Aurora.

Authentication from Scratch with Rails 5.2 — как настроить аутентификацию в приложении на Ruby on Rails 5.2.

Local SSL for Rails 5 development and tests — учимся настраивать локальный SSL-сертификат для разработки и тестирования приложения на Rail 5.

Optimize Dokku Deployment Speed for Ruby on Rails with Dockerfile — как оптимизировать скорость развертывания Rails-приложения на платформе Dokku.

Using Rails Session Cookies for API Authentication — детальная инструкция, как настроить аутентификацию с помощью session cookies в Rails API.

Testing CSV Files in Rails (on the fly) — учимся тестировать CSV-файлы в приложении на Rails.

Simple Authentication with Rails and OmniAuth — пошаговая инструкция, как реализовать аутентификацию пользователей с помощью гема OmniAuth в приложении на Rails.

Making a Ruby executable with ruby-packer — этот краткий гайд научит вас создавать исполняемые модули при помощи библиотеки Ruby Packer.

Creating a Minimal Sinatra App For Hosting Test Files on Heroku — читайте, как построить небольшое Ruby-приложение для хостинга тест-файлов на платформе Heroku с помощью фреймворка Sinatra.

Релизы

RubyMine 2018.2.3 — компания JetBrains выпустила версию 2018.2.3 (сборка 182.4323.73) популярной IDE RubyMine.

Mastodon 2.5 — вышла версия 2.5 популярной open-source платформы для создания социальных сетей Mastodon.

Ruby Gems

Honeybadger 4.0 — узнайте, что нового в версии 4.0.0 популярного гема Honeybadger.

Name of Person — этот гем поможет вам быстро привести имена людей к нужному формату.

Statics — данная библиотека содержит базовые классы и модули для статических моделей.

Benchmark::Trend — гем поможет вам измерить скорость выполнения кода на Ruby.

Remote Bootstrap Modal — эта библиотека добавляет модальное окно Bootstrap в приложение на Rails.

Конференции

RESCON — 4-6 октября компания Arkency проводит конференцию RESCON во Вроцлаве, посвященную Rails Event Store.

London Ruby Unconference 2018 — 6 октября в Лондоне пройдет London Ruby Unconference, где темы для дискуссии предлагают сами участники.

RubyRussia — 6 октября в Москве проходит конференция RubyRussia, а 7 октября участников ждут интересные воркшопы.

Послушать

Rad Dad — David Heinemeier Hansson — в гостях у Rad Dad (Kirill Zubovsky) создатель фреймворка Ruby on Rails David Heinemeier Hansson.

The Bike Shed

169: Fear Driven Development — основная тема подкаста — тестирование и рефакторинг приложений на Ruby.

170: Less Charted Territory — ведущий и гость подкаста Paul Smith обсуждают язык программирования Crystal, синтаксис которого во многом основан на Ruby.

171: What If We Just Used a Form? — в этом выпуске Matt Sumner рассказывает о своем опыте работы с блокчейн (в частности, с платформой Ethereum).

Ruby Rogues

RR 378: Ruby performance: MJIT with John Hawthorn — участники дискуссии обсуждают MJIT-компилятор для Ruby: что это такое, как он работает с Rails, а также насколько эффективно MJIT-компилятор увеличивает скорость работы приложений.

RR 379: «Caching in Rails» with Jeff Kreeftmeijer — в этом выпуске ведущие и гость подкаста обсуждают кэширование в Rails.

RR 380: «Deploying Ruby on Rails application using HAProxy Ingress with unicorn/puma and websockets‌» with Rahul Mahale — гость подкаста Rahul Mahale из компании BigBinary делится опытом работы с Kubernetes; в частности, Rahul рассказывает, как развернуть Rails-приложение при помощи HAProxy Ingress, используя Unicorn/Puma и websockets.

RR 381: «Ruby GUI Development» with Saverio Miroddi — главная тема выпуска — разработка приложений с графическим интерфейсом на Ruby.

RWpod

The Ruby Testing Podcast

Testing a Ruby Gem with Josh Wood of Honeybadger — гость подкаста Josh Wood рассказывает о том, как создавался и тестировался гем Honeybadger для Ruby.

How Jason Charnes Got Started with Testing — организатор конференции Southeast Ruby Conf Jason Charnes делится своим опытом тестирования приложений на Ruby.

Selenium and QA with Zach Attas — ведущий и гость подкаста обсуждают тестирование приложений на Ruby и инструменты Selenium и Capybara.

Refactoring Legacy Projects and Test Suites with John Cech — гость подкаста делится опытом рефакторинга legacy-приложений (а также тестов) на Rails.

Remote Ruby

Joined by «Schneems» (Richard Schneeman) — в гостях у ведущих Richard Schneeman — создатель CodeTriage и активный contributor Ruby on Rails.

The Yak Shave

1: A Brave New World — в дебютном выпуске нового подкаста ведущие обсуждают различные темы, в том числе read-your-writes consistency в AWS S3 и работу long-running jobs в Sidekiq.

2: This is Fine — выпуск посвящен incident management: как происходят инциденты и почему важно их документировать.

3: Almost 0% Chance it’s a Bug — в этом подкасте один из ведущих рассказывает о самом сложном случае debugging в своей карьере.

Посмотреть

Подборка видео от Codemy:

Выпуски GoRails за сентябрь, в которых ведущий подробно рассказывает, как реализовать вложенные комментарии в приложении на Ruby on Rails, а также показывает, как ускорить pagination при помощи гема Pagy:

Сентябрьская подборка платных скринкастов от Drifting Ruby:

Выпуски платных скринкастов от Ruby Tapas в сентябре:


Касательно тем/материалов/ивентов, которые стоит добавить в следующий выпуск дайджеста, пишите в комментариях или на  Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. . Спасибо за помощь в подготовке дайджеста команде RubyGarage.


← Предыдущий выпуск: Ruby дайджест #21

Похожие статьи:
Аби в Україні почав діяти новий порядок бронювання працівників, уряд має фіналізувати проєкт відповідної постанови та схвалити його...
Image via Shutterstock.[Об авторе: Руслан Гайдамашко — по образованию инженер-программист. Несколько лет работал разработчиком, позже перешел...
Новые версии Yii 1.1.17 jQuery 1.12, 2.2 и jQuery 3.0 Beta Elixir v1.2 Rust 1.6 Clojure 1.8 Ansible 2.0 Git 2.7.0 Linux 4.4 Debian 8.3 PostgreSQL 9.5 Новости Support for older versions of Internet Explorer ended...
Web Academy приглашает на 6ти недельную прокачку знаний для системных администраторов (linux system administrators):Сложные структурированные темы,...
В предыдущей статье было описано, как применять игровой 2D-движок SpriteKit для быстрого создания простых анимаций в iOS. В новой статье...
Яндекс.Метрика