Ruby/Rails дайджест #16: официальный релиз Rails 5.0.7 и 5.1.6, новая бета-версия Hanami, создаем Slack bot на Rails

Всем привет! Март порадовал Ruby-сообщество множеством интересных событий.

Прежде всего, вышли официальные версии Rails 5.0.7 и 5.1.6, а также бета-версия фреймворка Hanami — v1.2.0.beta2. Во-вторых, появились первые бенчмарки превью-версии Ruby 2.6 с JIT. Также обратите внимание на статьи Daniel P. Clark о Vue.js в качестве фронтенд-фреймворка для приложений на Rails.

Почитать

Ruby 2.6 preview 1: Timing JIT — в конце февраля вышла превью-версия Ruby 2.6, а уже в марте появились первые бенчмарки. Насколько эффективен JIT-компилятор? Все ответы — в статье.

Towards The Ruby 3×3 Performance Goal — узнайте, как сообщество Ruby работает над проектом CRuby и сможет ли версия 3 в три раза превосходить по производительности версию 2.

If the OS landscape was disrupted, would Ruby have survived until today?! — Keynote by Mr. Yukihiro «Matz» Matsumoto at Ruby25 — не пропустите главное из речи создателя языка Ruby Юкихиро Мацумото (Matz) на конференции Ruby25.

A New Ruby Application Server: NGINX Unit — обзорная статья о том, насколько сервер приложений Nginx подходит для приложений на Ruby.

TIOBE Index for March 2018 — Ruby вытеснил Delphi в первой десятки рейтинга популярности языков программирования по версии TIOBE.

Passenger 5.2.2: passenger_base_uri fixed, new Phusion product spoiler — если ваше приложение использует сервер Passenger, то самое время сделать апгрейд до версии 5.2.2. В статье говорится, как это сделать.

RabbitMQ is more than a Sidekiq replacement — автор подробно рассказывает о преимуществах RabbitMQ в сравнении с Sidekiq при работе с фоновыми задачами.

Practical Differences between Working in Ruby and iOS — на основе собственного опыта автор сравнивает разработку на Ruby и Swift; статья будет полезна full-stack программистам, а также тем Ruby-программистам, которые собираются попробовать себя в мобильной разработке под iOS.

My thoughts on Hanami — Райан Бигг делится своим мнением о Ruby-фреймворке Hanami.

Implementing a basic debug mode for your Ruby CLI — автор подробно описывает, как настроить сообщения об ошибках с помощью имплементации отладочного режима для Ruby CLI.

How I Built Timeasure: Part 1 — Motivation & Method Wrapping — первая статья из цикла, в котором автор детально описывает процесс создания гема Timeasure.

Solving CAPTCHAs with TensorFlow and Ruby — узнайте, как научить Ruby-приложение автоматически преодолевать капчи с помощью инструмента TensorFlow.

Using `yield_self` for composable ActiveRecord relations — автор рассказывает о том, как метод yield_self можно использовать в работе с Active Record.

Why proxying Bugsnag (or similar service) might be a good idea? — на примере сервиса проверки качества кода Bugsnag автор показывает, как проксировать сообщения об ошибках через back end.

An overview of Desktop Ruby GUI development in 2018 — краткий обзор инструментов для создания desktop-приложений на Ruby.

Setting up a Rails app for CodeBuild, CodeDeploy, and CodePipeline on AWS — читайте, как настроить continuous integration/delivery/deployment Rails-приложения с помощью сервисов AWS.

The correct emails configuration in Rails — простые советы о том, как правильно настроить отправку имейлов в Rails-приложениях.

Ruby on Rails: 5 Checks to Make Before Launching Your App — чек-лист по пунктам, на которые стоит обратить внимание перед запуском вашего Ruby on Rails приложения.

Use Ruby Objects to Keep Your Rake Tasks Clean — автор делится опытом оптимизации Rake-задачи с помощью объектов в Ruby.

Why Service Objects are an Anti-Pattern — многие Ruby-разработчики используют service objects в Rails-приложениях, однако автор статьи считает этот подход неверным. Узнайте почему!

Introducing Blueprinter — Blueprinter — новый инструмент для форматирования и сериализации API.

Is Ruby on Rails a Good Framework for Building a SaaS product? — в статье подробно разобран вопрос, насколько Ruby on Rails подходит для создания SaaS-приложений.

Qyu: A distributed task execution system for complex workflows — автор рассказывает о новом инструменте для распределения задач для Ruby.

Better passwords in Ruby applications with the Pwned Passwords API — если вы хотите обеспечить максимальный уровень защиты аккаунтов пользователей, используйте Pwned Passwords API.

From Rails to Clojure, then to Java, then back to Rails — почитайте мнение автора о нескольких языках программирования, а также плюсы и минусы каждого из них.

Rails test coverage: Measuring what matters with SimpleCov — статья рассказывает, почему важно анализировать степень покрытия кода тестами при помощи библиотеки SimpleCov.

Why should you learn multiple programming languages? — даже если вы первоклассный специалист по Ruby, не стоит пренебрегать другими языками программирования. Почему? Автор делится своим мнением.

Monitoring Sidekiq Using AWS Lambda and Cloudwatch — функционала Sidekiq может быть недостаточно для анализа обработки фоновых задач; данная статья расскажет, как это исправить с помощью AWS Lambda.

Ruby Benchmarking — если вы строите крупное приложение на Ruby, то наверняка вы хотите измерить его производительность. Статья ознакомит вас с тем, как качественно протестировать приложение.

Подборка от Mensfeld

Подборка от Arkency

Подборка от Engine Yard

Подборка от BigBinary

GPG decryption without pin entry pop up using GPGME — краткое руководство о том, как раскодировать файлы, зашифрованные с помощью инструмента GnuPG (он же GPG).

Также продолжение серии статей о Ruby 2.5:

Подборка от AppSignal

  • Fragment caching in Rails — узнайте, как ускорить работу приложений с помощью кэширования фрагментов кода.
  • Exceptions in Ruby — автор на примерах рассказывает о типах исключений в Ruby.

Подборка от Paweł Dąbrowski

Подборка от Nopio

  • How to Setup Rails Application on Heroku — Redis, Sidekiq, Action Cable and Cron Configuration — статья описывает процесс установки Rails-приложения на хостинг Heroku, подробно останавливаясь на настройке отдельных элементов инфраструктуры.
  • Blockchain App with Ruby — блокчейн — одна из самых горячих тем в мире технологий; эта статья расскажет вам, как создать децентрализованное приложение на Ruby.

Подборка от End Point

  • Multi-Tenant Architecture — автор рассказывает о том, как реализовать multi-tenant архитектуру в Rails-приложениях с помощью гема Apartment.
  • Rails Active Storage — узнайте, как с помощью Active Storage в Rails 5.2 можно загружать файлы в облачные хранилища (AWS, Google Cloud и Microsoft Azure).

Туториалы

Capistrano deploy to ubuntu with systemd, nginx/puma and rbenv — туториал по развертыванию приложения и (или) среды разработки на одном сервере при помощи Capistrano.

Bare Bones Rails Action Cable Tutorial — туториал по созданию чат-сервера при помощи Action Cable.

Upgrade Rails from 4.2 to 5.0 — статья обращает внимание на важнейшие аспекты при обновлении Rails-приложения с версии 4.2 до 5.0.

How to Track Down and Fix Slow Active Record SQL Queries in Rails — недовольны производительностью своего Rails-приложения? Не спешите вносить изменения в стак, возможно, проблема в базе данных, а этот туториал научит вас оптимизировать работу Active Record SQL запросов.

How I’ve Built a Profitable Slack Bot as a Side Project in Rails — чатботы становятся все более популярны; почитайте, как создать Slack-бота при помощи Ruby on Rails.

The Proxy pattern revisited — узнайте, как использовать Proxy дизайн-паттерн при помощи метода Module#prepend.

How to run Capybara feature specs with Selenium and headless Chrome — CircleCI 2.0 case study — туториал учит, как избежать проблем с популярными инструментами Capybara и Selenium при переходе с CircleCI 1.0 на CircleCI 2.0.

Yes, Ruby 1.9 can support TLSv1.2! — можно ли использовать TLSv1.2 в приложении на Ruby 1.9? Да! И этот туториал покажет, что нужно делать.

Only use named scopes outside models — как улучшить организацию кода и увеличить продуктивность, используя поименованные области действия.

Memoizing in Ruby — туториал по оптимизации работы приложения с помощью мемоизации.

The Local Variable Aversion Antipattern — многие Ruby-разработчики избегают локальных переменных, предпочитая извлеченные методы, однако насколько этот подход хорош? Автор делится опытом и показывает, как можно использовать локальные переменные.

Grpc Tutorial With Ruby — автор решил обновить руководство по настройке grpc для Ruby.

Convert an ActiveRecord object into the fixture — туториал демонстрирует, как превратить объект ActiveRecord в yaml формат.

Refactoring views with Ruby on Rails’ ActiveSupport helpers — автор делится опытом рефакторинга кода при помощи инструментария ActiveSupport.

JSON API Phase 3: API Server — третья из четырех статей цикла о разработке API при помощи Express и Swagger; в этой части описан процесс создания API сервера.

Dry Behaviour aka Protocol Pattern in Ruby — как использовать паттерн Protocol при создании приложения на Ruby.

Managing db schema changes without downtime — автор показывает, как избежать проблем при изменениях схемы данных в Rails-приложении.

JSONify your Ruby Translations — узнайте, как использовать формат JSON для Ruby трансляций.

How to test logs using RSpec expectations and StringIO in Ruby — статья показывает два способа тестирования логов.

UPGRADING TO RAILS 5.1X — разработчик компании RED Panthers делится опытом обновления одного из продуктов до версии Rails 5.1.

Focused `puts` debugging with STDERR — туториал поможет провести отладку не только написанного вами кода, но также кода используемых вами гемов.

Elapsed time with Ruby, the right way — узнайте, как правильно запрограммировать подсчет времени выполнения в Ruby-приложении.

JetRockets

RubyGuides

  • The Definitive Guide to Loops in Ruby — статья научит вас нескольким способам создавать циклы в Ruby.
  • How to Write a Ruby C Extension — автор детально описывает, как создать расширение C для увеличения производительности Ruby-приложений.

Codeship

  • VueJS as a Frontend for Rails — популярность Vue.js растет и самое время узнать, как использовать его в качестве frontend-фреймоворка в Rails-приложениях.
  • VueJS Components with CoffeeScript for Rails — продолжение предыдущей статьи; автор показывает, как использовать компоненты Vue.JS с помощью CoffeeScript в Ruby on Rails.

Релизы

Rails 5.0.7 and 5.1.6 have been released — официально вышли новые версии Rails: 5.0.7 и 5.1.6. Узнайте, что изменилось по сравнению с предыдущими версиями!

Announcing Hanami v1.2.0.beta2 — вышла бета-версия фреймворка Hanami v1.2.0.beta2.

Rails 5.2.0 RC2: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials — Rails-сообщество завершает работу над новой версией нашего любимого фреймворка. Узнайте, что нового во второй предвыпускной версии 5.2.0 RC2.

NGINX Unit Beta — вышла бета-версия сервера приложений Nginx с поддержкой Ruby.

Ruby Gems

Interesting Methods — этот новый гем позволяет быстро просмотреть методы объектов в Ruby.

Deferral — гем позволяет использовать в Rails-приложениях метод defer по образцу Golang.

Pwned — Pwned позволяет использовать Pwned Passwords API для Rails.

Послушать

241: Upgrading Kickstarter to Rails 5 with Logan McDonald — ведущие подкаста обсуждают обновление приложения Kickstarter с Rails 4 на Rails 5.

The Bike Shed

  • 147: Is a Lambda a Sandwich? — ведущие обсуждают новинки в Ruby 2.5, в том числе разницу между понятиями block, proc и lambda.
  • 144: Fisher Price™ Tools — в этом подкасте авторы обсуждают повестку апрельской конференции RailsConf 2018, опыт использования Rails Твиттером и многое другое.

Ruby Rogues

RWpod

Greater Than Code

Посмотреть

Method Driven Development — автор описывает Method Driven Development (MDD) — технику, которую он использует при работе с гемом Geocoder.

Develop a Messenger Bot in Pure Ruby — Andy Barnov — Не пропустите видеотуториал о том, как создать чатбота на Ruby при помощи фреймворка Rubotnik.

CSV & XML Injections — YYCRuby Presentation — презентация Гэвина Миллера с митапа YYCRuby; узнайте, как предотвратить CSV и XML injections.

Новая подборка от GoRails, в которой ведущий рассматривает возможности ActiveStorage в Rails 5.2, а также учит создавать шаблоны для Rails-приложений:

Подборка платных скринкастов от Drifting Ruby в марте

Мартовские выпуски платных скринкастов от Ruby Tapas

События

Remote Ruby — 5 апреля пройдет ежемесячный онлайн-ивент Remote Ruby. Идеально для тех, кто хочет быть в курсе событий в мире Ruby, не выходя из дома!

Rails Girls Rotterdam — 14 апреля в Роттердаме Rails Girls проведут бесплатный однодневный воркшоп.

Конференции

Ruby Meditation #21 — еще не поздно зарегистрироваться на Ruby Meditation, которая пройдет Харькове 14 апреля. Вас ждут интересные и полезные доклады, живое общение и дружеская атмосфера.

RailsConf — если у вас открыта виза в США, не пропустите RailsConf 2018, крупнейшую Ruby-конференцию в мире, которая пройдет 17-19 апреля в Питтсбурге, штат Пенсильвания.

Isle of Ruby — с 13 по 15 апреля в Великобритании пройдет Isle of Ruby — фестиваль, где разработчики делятся опытом и отдыхают всем Ruby-комьюнити.

RubyConfBY 2018 — 21 апреля в Минске пройдет третья конференция RubyConfBY. Темы включают ускорение Ruby при помощи JIT-компилятора и перспективах использования языка Ruby в машинном обучении.


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


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

Похожие статьи:
Це новий випуск DOU Podcast, в якому ми підбиваємо підсумки важкого 2022 року та говоримо про те, як усіх нас змінила війна, що сталося...
Всем привет! Меня зовут Макс Даниленко, и сейчас я на позиции Head of Java Center of Excellence в компании Intellias. Кроме всего прочего,...
SQL життєво необхіден кожному розробнику і тестувальнику. Але найкращий спосіб вивчення будь-якої мови (програмування...
Нічого теоретичного, лише власний успішний досвід. Робота. Робота. Ро-бо-o-о-та. Я так люблю свою роботу! Я дуже люблю...
Когда работаешь менеджером — каждая минута на счету, часто многое не успеваешь, а хочется еще и прокачивать hard...
Яндекс.Метрика