×Закрыть

Ruby/Rails дайджест #25: релиз Ruby 2.6.0, график выпуска Ruby on Rails 6 и материалы о поддержке Ruby на AWS Lambda

С Новым годом и Рождеством, друзья!

Этот праздничный дайджест хочу начать с краткого обзора наиболее важных событий и релизов в мире Ruby/Rails.

Конечно, в дайджесте вы найдете и свежие материалы за декабрь. Несмотря на рождественские и новогодние праздники, сообщество Ruby выкатило множество релизов, в том числе стабильную версию Ruby 2.6 с JIT-компилятором и Ruby on Rails 5.2.2. В 2019 году выйдет Ruby on Rails 6 — обязательно посмотрите график его релиза. Также не пропустите подборку материалов о поддержке Ruby на сервисе AWS Lambda.

Еще спешу поделиться с вами новостью — с января автором и редактором дайджеста станет Кирилл Шевченко, Ruby/JS разработчик в RubyGarage и автор технического блога. Смело задавайте вопросы Кириллу и предлагайте идеи, как улучшить дайджест в комментариях.

А теперь давайте смотреть, чем же запомнился ушедший год?

Топ 2018

В начале годы вышла первая preview-версия Ruby 2.6, а в конце декабря состоялся релиз стабильной версии Ruby 2.6 с JIT-компилятором.

Ruby 2.2 больше не поддерживается разработчиками.

В апреле команда разработчиков Ruby on Rails представила версию 5.2 самого популярного фреймворка на Ruby.

Вышла версия v1.2.0 Ruby-фреймворка Hanami.

Состоялся релиз версий 2.0.2 и 2.0.3 фреймворка Sinatra.

Проект Paperclip больше не поддерживается разработчиками компании thoughtbot.

DHH представил фреймворк Action Text для Ruby on Rails 6.

Популярный тест-фреймворк RSpec был обновлен до версии 3.8.

Команда разработчиков GitHub обновила приложение до Rails 5.2.1.

JRuby — популярный интерпретатор языка Ruby — теперь совместим с Ruby 2.5.

Почитать

Timeline for the release of Rails 6.0 — график релиза фреймворка Ruby on Rails 6.

Introducing Action Mailbox for Rails 6 — что такое фреймворк Action Mailbox, который войдет в Ruby on Rails 6.

Ruby 2.6 JIT — Progress and Future — о настоящем и будущем JIT-компилятора в Ruby 2.6.

Ruby Memoization and Alternatives — когда использовать мемоизацию в Ruby и какие альтернативы существуют.

Announcing Ruby build support for AWS SAM CLI — в инструмент AWS SAM CLI официально добавлена поддержка Ruby.

Using Scenic and SQL views to aggregate data — как использовать гем Scenic для работы с SQL views.

Check and Update a URL with Ruby — простой способ актуализировать старые URL с помощью Ruby.

Big on Heroku: Scaling Fountain without losing a drop — советы от Evil Martians по масштабированию приложения на Heroku.

Meet Stealth 1.1 — что нового в версии Stealth 1.1 — фреймворка для создания чатботов .

Recursion, Tail Call Optimization and Recursion — как оптимизировать хвостовую рекурсию в Ruby.

How to Reduce Memory Usage by Tuning Gemfile — как настроить Gemfile, чтобы снизить использование памяти в приложении на Rails.

Juggling Chainsaws at Machu Picchu: Metaprogramming in Ruby — автор показывает, как использовать метапрограммирование в Ruby.

Polymorphic Routes — освежаем в памяти, что такое polymorphic routing в Ruby on Rails.

Displaying, downloading and streaming files with Active Storage — полезная шпаргалка по использованию Active Storage в Rails.

Boosting the Development Environment with Vagrant and Ansible — как оптимизировать среду разработки с помощью Vagrant и Ansible.

A Weird and Wonderful Trip through Ruby’s Standard Library — обзор малоизвестных возможностей стандартной библиотеки Ruby.

Keeping your schema close to you with the ’annotate’ gem — как легко получить информацию о схеме базы данных при помощи гема Annotate.

Inheritance and Define_method — How to Make Them Work Together — как использовать наследование и метод define_method при помощи метапрограммирования.

Disassembling Rails — Template Rendering (2) — автор показывает, как фреймворк Ruby on Rails обрабатывает шаблоны.

Destroying an Association Marked as Read-Only in Rails — автор описывает интересный случай использования метода destroyed_by_association в Rails.

Benchmark: Deep directory structure vs. flat directory structure to store millions of files on ext4 — какую структуру файлов стоит выбрать — смотрим итоги бенчмарков.

How to cache Ruby gems or NPM dependencies on CircleCI 2.0 — учимся кэшировать гемы и NPM-зависимости при использовании CircleCI.

Подборка материалов об использовании Ruby на платформе бессерверных вычислений AWS Lambda:

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

Write long strings with wiggly HEREDOCs — почему стоит использовать HEREDOC при создании длинных строк.

Always Force Booleans to be True or False — автор объясняет, почему булевые значения должны быть или true, или false.

Подборка от Appfolio Engineering

How Fast is Ruby 2.6.0preview3 for Discourse — разработчики Appfolio Engineering сравнили скорость работы Ruby 2.6.0preview3 в сравнении с Ruby 2.5.

Multiple Gemfiles, Multiple Ruby Versions, One Rails — автор делится опытом, как в Rails-приложении использовать разные версии Ruby и конфигурации гемов.

A Short Update: How Fast is Ruby 2.6.0rc1 — оцениваем скорость работы первой предрелизной версии Ruby 2.6.0.

Подборка от AppSignal

Don’t be mean: Statistical means and percentiles 101 — какие индикаторы производительности приложения выбрать.

Ruby gem 2.8: Container memory & JRuby on Alpine Linux support — что нового в версии 2.8 гема AppSignal.

Подборка от Arkency

Serverless Slack bot on Lambda with Ruby — создаем Slack-бота на Ruby при помощи сервиса бессерверных вычислений AWS Lambda.

Modeling passing time with events — автор делится опытом организации событийно-ориентированной бизнес-логики приложения.

Подборка от BigBinary

Passing current_user by default in Sidekiq — как настроить передачу current_user по умолчанию в Sidekiq.

Optimize loading multiple routes on Google map using B-spline — учимся оптимизировать маршруты доставки продукции при помощи B-сплайнов в приложении, которое использует Google Maps.

Rails 5 Active Record attributes API — разбираемся с Active Record attributes API в Rails 5.

Подборка от BoltOps

Official AWS Ruby Support for Jets Serverless Framework — serverless-фреймворк Jets теперь можно использовать с официальной поддержкой Ruby на сервисе AWS Lambda.

Jets Image Upload Carrierwave Tutorial: Binary Support — в этом туториале автор показывает, как импортировать изображения с помощью serverless-фреймворка Jets и библиотеки CarrierWave.

Jets Afterburner: Serverless Rails on AWS Lambda in 5 Minutes — как развернуть Rails-приложение на AWS Lambda при помощи Jets Afterburner.

Подборка от Jason Swett

How to Run Feature Specs Headlessly or Not Headlessly at Will — как тестировать функции приложения в браузере и вне его.

Testing Private Methods — как тестировать закрытые методы в Ruby.

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

SOLID & Ruby in 5 short examples — принципы SOLID в Ruby на простых примерах.

Modules in Ruby: Part II — освежаем в памяти, что такое анонимные модули в Ruby.

Подборка от Ross Kaffenberger

Everything is Enumerated — как использовать to_enum с block methods в Ruby.

Why RSpec users should care about Rails system tests — почему стоит проводить системные тесты при работе с RSpec.

Подборка от RubyGuides

How to Use State Machines in Ruby — как использовать state machines в Ruby.

How to Run System Commands From Ruby — несколько способов команду из Ruby в терминале.

How to Use The VCR Gem to Improve Your Testing Suite — оптимизируем тестирование Rails-приложений при помощи гемов WebMock и VCR.

What is A REPL in Ruby? — освежаем в памяти, что такое REPL в Ruby.

How to Build Command-Line Applications with Ruby — учимся создавать приложения командной строки в Ruby.

MiniMagick Gem: How to Transform Images Using Ruby — как изменять изображения при помощи гема MiniMagick в приложениях на Ruby.

Подборка от RubyPlus

Kafka Producer and Consumer in Ruby using Docker — краткий туториал, как создать producer and consumer программу на Docker.

Ruby Kafka Messaging App using Docker — как подключить приложение на Ruby к Kafka при помощи Docker.

Getting Kafka Up and Running with Vagrant — пошаговый туториал, как создать приложение для обмена сообщениями на Ruby с помощью Kafka и Vagrant.

Подборка от Sam Phippen

Rack middlewares that have saved me literally hours of my life — авто на основе собственного опыта показывает преимущества использования промежуточного ПО Rack.

How I organise my VIM hotkeys — автор делится советами по работе с текстовым редактором VIM.

Туториалы

Building an API with Ruby and the Serverless Framework — создаем Ruby API при помощи Serverless Framework.

Deploying a Rails 5.2 PostgreSQL app on AWS Elastic Beanstalk — как развернуть приложение на Rails 5.2 и PostgreSQL на сервисе AWS Elastic Beanstalk.

Customizing Rails rake tasks — учимся настраивать Rake-задачи в приложении на Rails.

How to Use Ruby on Rails for Local SMTP Email Testing — в этом туториале автор показывает, как настроить SMTP-сервер в приложении на Rails.

How business transactions helped decouple Rails controllers at TextMaster — как сделать рефакторинг контроллеров в приложении на Rails.

How to Set Up Redirects in a Ruby Rack Application — как настроить переадресацию в Rails Rack приложении.

101: Law of Demeter — как устранить нарушение «закона Деметры» (Law of Demeter) на примере Ruby-приложения на фреймворке Sinatra.

Transparent compression of RabbitMQ messages with Sneakers — краткая инструкция, как ускорить работу RabbitMQ при помощи сжатия сообщений.

Релизы

Ruby 2.6.0 — релиз стабильной версии Ruby 2.6.0.

Rails 5.2.2 — вышла стабильная версия фреймворка Rails 5.2.2.

JRuby 9.2.5.0 — релиз версии 9.2.5.0 интерпретатора языка Ruby.

mRuby 2.0.0 — появилась версия mRuby 2.0.0 — реализации языка Ruby для встраиваемых систем.

RubyMine 2018.3.1 — популярная IDE RubyMine обновилась до версии 2018.3.1 (сборка 183.4588.71).

Passenger 6 — вышла стабильная версия 6.0 сервера приложений Passenger.

RubyGems 3.0.0 — релиз версии 3.0.0 менеджера пакетов RubyGems.

Послушать

The Bike Shed

181: Strong Types and a Functional Flair — ведущие и Joe Ferris — CTO компании thoughtbot — обсуждают интересных тем, в том числе сервис Apache Kafka и платформа RabbitMQ.

Ruby Rogues

RWpod

Ruby on Rails Podcast

The Ruby Testing Podcast

020 — Josh Clayton of thoughtbot — гость подкаста — Josh Clayton из компании thoughtbot — делится опытом тестирования приложений, а также рассказывает о паттернах генерации данных для тестирования Rails приложений.

Remote Ruby

Accounting (?), Ruby 2.6rc1, Rails 5.2.2, AWS Lambda + Ruby, Stimulus Component Library — обзор последних новостей в мире Ruby от постоянных ведущих Remote Ruby Криса и Джейсона.

The Yak Shave

It’s not a Pyramid, it’s a Diamond — в этом выпуске Sam Phippen делится своей методикой тестирования приложений.

Посмотреть

RubyConf 2018 — подборка докладов и обсуждений с прошедшей в ноябре конференции RubyConf 2018.

Декабрьские выпуски GoRails, в которых ведущий продолжает серию о реализации встраиваемых JavaScript-виджетов в приложениях на Rails:

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

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


Касательно тем/материалов/ивентов, которые стоит добавить в следующий выпуск дайджеста, пишите в комментариях или на kirill@rubygarage.org. Спасибо за помощь в подготовке дайджеста команде RubyGarage.


← Предыдущий выпуск: Ruby дайджест #24
Следующий выпуск: Ruby дайджест #26

LinkedIn

2 комментария

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Большое спасибо за отличный материал !

Обязательное регулярное спасибо, жду каждый месяц с нетерпением!

Подписаться на комментарии