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

Похожие статьи:
Мы собрали список компаний, которые готовы бесплатно принимать у себя в офисе разные IТ-мероприятия — выступления докладчиков,...
[В рубрике «Как я работаю» мы приглашаем гостя рассказать о своей работе, организации воркспейса, полезных инструментах...
Компания MediaTek представила линейку чипсетов MT2523, разработанных для умных часов с ориентацией на фитнес и активный образ...
Обмена данными проблема, когда необходимо оперативно дать коллегам, друзьям либо приятелям какие-то материалы...
От редакции:В рубрике DOU Проектор все желающие могут презентовать свой продукт (как стартап, так и ламповый...
Яндекс.Метрика