Ruby/Rails дайджест #19: новые версии фреймворка Sinatra, релиз Ruby 2.6.0-preview2, материалы с RubyKaigi 2018

Привет всем! Несмотря на сезон отпусков, июнь выдался достаточно продуктивным для Ruby-сообщества.

Начнем с того, что в июне вышли новые версии Ruby-фреймворка Sinatra 2.0.2 и 2.0.3, генератора статичных сайтов Jekyll 3.8.3 и сервера Passenger 5.3.3. Также сообщество Ruby объявило, что больше не будет поддерживать версию Ruby 2.2, а значит следует переходить на более новые версии Ruby. Также обратите внимание на цикл статей RubyGarage о конфигурации Rails-приложения на AWS при помощи Chef.

Почитать

Support of Ruby 2.2 has ended — сообщество Ruby больше не поддерживает версии Ruby 2.2.

More YAML improvements in the Updated RubyMine 2018.2 EAP — что нового добавилось в версии RubyMine 2018.2 EAP (build 182.3341.19) от компании JetBrains.

Stripe is building a Ruby typechecker — Stripe разрабатывает Sorbet — инструмент для типизации в Ruby.

Http.rb is Great — почитайте о преимуществах http.rb — быстрого и простого в использовании HTTP-клиента для Ruby.

Python vs. Ruby vs. Node.js — Which platform is a fit for your project? — обзор сильных и слабых сторон Ruby, Python и Node.js.

Learn Haskell, Write Better Ruby — как знание Haskell может помочь в создании приложений на Ruby.

ActiveRecord’s where.not and nil — как правильно использовать условие where.not при создании сложных запросов.

Ruby on Rails vs Laravel Comparison: Which Framework to Choose for Your Next Project? — сравниваем фреймворки Ruby on Rails и Laravel.

Why Crystal Is My Next Language — почему опытный разработчик на Ruby и Python решил выучить язык программирования Crystal.

Using Replica database with your ActiveRecord models — автор делится опытом использования реплики базы данных для генерации статистических данных.

Applications of Lambda in Ruby — узнайте, как применять lambda-выражения в Ruby.

Golang for Rubyists. Part 6. Structs, Methods and Interfaces — продолжение цикла о языке Go; статья посвящена структурам, методам и интерфейсам.

Making Tests Go Faster — как ускорить прохождение тестов в приложении на Rails.

Rails Asset Pipeline Directory Traversal Vulnerability — в библиотеке Sprockets найдена уязвимость, связанная с directory traversal.

From ActiveRecord to Diesel — автор сравнивает, как один и тот же SQL-запрос выполняется при помощи Ruby и Active Record, а затем при помощи Rust и Diesel.

Do You Know How Hash Table Works? (Ruby Examples) — что такое хэшированная таблица и как она работает в Ruby.

Modernizing StackShare’s Front End: The React + Rails Stack — как обновить клиентскую часть приложения на Rails: изучаем опыт StackShare.

Demand for Ruby on Rails is Still Huge — Ruby on Rails — наиболее востребованная веб-технология среди стартапов в США.

First Impression of Elixir, from a Rubyist’s Perspective — Ruby-разработчик делится своими впечатлениями о языке Elixir.

Ruby inheritance — Access modifiers and misconceptions behind them — освежите в памяти, как ведут себе модификаторы доступа (access modifier) в Ruby.

Disassembling Rails: How Fragment Caching Works — начало цикла о Ruby on Rails; эта статья посвящена кэшированию фрагментов.

Quest for Ruby Pattern Matching — как можно реализовать pattern matching в Ruby.

Working Well With Legacy Code — несколько полезных советов, как работать с унаследованным кодом.

Remove AMP without Hurting SEO Rating, Organic Traffic and Performance — автор рассказывает, как отключить сервис AMP на сайте без вреда для SEO и производительности.

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

Use beginning and end of string in regular expressions — какой синтаксис стоит использовать в регулярных выражениях, чтобы избежать возможных уязвимостей.

Ignore PHP bots with Rack::Attack — как блокировать PHP-ботов (замедляющих работу вашего приложения) при помощи Rack::Attack.

Подборка от AppSignal

Ruby’s redo, retry and next keywords — как использовать ключевые слова redo, retry и next в Ruby.

Caching counters with ActiveRecord’s counter caches — подробная инструкция, как пользоваться функцией кэширования счетчиков в Active Record.

Подборка от Arkency

Removing magic with magic — автор показывает, как проследить, где используется унаследованный код, чтобы удалить или модифицировать его.

Rewriting deprecated APIs with parser gem — как переписать устаревшие API при помощи гема Parser.

Подборка от BigBinary

Using Concurrent Ruby in a Ruby on Rails Application — как использовать инструменты работы с многопоточным кодом в приложении на Rails.

Rails 5.2 uses AES-256-GCM authenticated encryption as default cipher for encrypting messages — в Rails 5.2 по умолчанию используется AES-256-GCM шифрование сообщений.

Статьи, посвященные конференции RubyKaigi 2018:

Подборка от Cezar Halmagean

Ruby’s attr_accessor, attr_reader and attr_writer — как известно, по умолчанию в Ruby методы объектов доступны, а данные — скрыты. Статья показывает, как сделать данные доступными.

Is Ruby pass-by-reference or pass-by-value? — разбираемся, какая стратегия используется в Ruby для передачи объектов — pass-by-value или pass-by-reference.

Object-Oriented Programming (OOP) with Ruby — новичкам в Ruby будет полезно более детально ознакомиться с концепцией объектно-ориентированного программирования.

Подборка от Paweł Świątkowski

Integrating Pagy with Hanami — как интегрировать гем Pagy с фреймворком Hanami.

Hidden jewels of Ruby stdlib — узнайте, какие возможности дает библиотека stdlib в Ruby.

Подборка от Prograils

Starting with Rails — how to set up a development environment — программисты-новички, не пропустите инструкцию по настройке среды разработки для Rails.

Three ways of iterating over tree-like ActiveRecord structures — три способа работы с древовидными структурами данных в Active Record.

Подборка от reinteractive

Frankenstein’s ActiveRecord: How to stitch together complex ActiveRecord queries from simple parts — полезные советы, как упростить написание запросов в Active Record.

Docker for Rails Development — учимся использовать платформу Docker для разработки приложений на Rails.

Подборка от RubyGarage

RubyGarage on RubyC 2018 — команда разработчиков RubyGarage делится впечатлениями о прошедшей 2-3 июня в Киеве конференции RubyC.

Цикл статей о конфигурации Rails-приложения на AWS EC2 при помощи инструмента Chef:

Подборка от RubyGuides

Why Do We Create Classes? — автор объясняет, зачем создавать классы в приложениях на Ruby, а также рассказывает, что такое абстракции и почему они важны.

Ruby’s Powerful Method Arguments & How To Use Them Correctly — подробный гайд, посвященный аргументам метода (method arguments) в Ruby.

Подборка от Runtime Revolution

Redis —  An Introduction — учимся настраивать Redis в приложении на Rails.

Calculating Route... — автор делится своим опытом работы с механизмом маршрутизации в Rails.

Crystal is not Ruby Pt. 2 — вторая статья цикла о сравнении языков программирования Crystal и Ruby.

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

An analysis of memory bloat in Active Record 5.2 — узнайте, почему Active Record 5.2 склонен к чрезмерному использованию памяти.

Ruby’s external malloc problem — автор подробно описывает проблему при использовании функции malloc для очистки памяти в Rails-приложениях.

Подборка от Samuel Williams

Improving Ruby Concurrency — как улучшить работу с многопоточным кодом в приложениях на Ruby.

Improving Ruby Fibers — автор показывает, как увеличить производительность класса Fiber в Ruby.

Asynchronous Ruby — как реализовать асинхронное программирование в Ruby.

Туториалы

Rails CSRF protection for SPA — учимся предотвращать CSRF-атаки в SPA-приложениях.

React Hot Reload in Ruby On Rails — подробный гайд о том, как использовать hot module reloading в приложении на Rails и React.

Testing the multi-subdomain Rails app — тестируем Rails-приложение с многими субдоменами.

Setting up a BDD Stack on a Rails 5 Application — детальная инструкция, как создать приложение на Rails 5 и настроить инструментарий для behavior-driven development.

Quick tips for practical Rubocop workflow — полезные советы, которые помогут вам в работе с анализатором кода RuboCop.

Simple shortcuts to get more out of Bundler — автор на примерах показывает, как сокращения помогают облегчить работу с менеджером гемов Bundler.

Using GraphQL with Rails — учимся использовать язык запросов для API GraphQL в приложениях на Rails.

Ruby on Rails: Paginate Stateful Tabs with Pagy — туториал показывает, как удобен гем Pagy при наличии нескольких пагинаций на странице (например, при наличии вкладок).

JSON Serialization in Rails: A Complete Guide — автор подробно объясняет, как осуществить сериализацию JSON в приложении на Rails.

Ruby on Rails — how to create perfect enum in 5 steps — учимся создавать перечисляемые типы (enums) в Ruby правильно.

Testing HTML5 drag and drop with Capybara — полезная инструкция, как тестировать функцию drag and drop при помощи инструмента Capybara.

How to track user events and visits in Rails using Ahoy gem — туториал научит вас отслеживать действия пользователей с помощью гема Ahoy.

Rails and Conditional Validations in Models — несколько способов реализовать conditional validation в моделях Rails-приложения.

Configuration Cache and Rails Session Store with Redis — как настроить управление сессиями при помощи встроенного Redis cache store в приложении на Rails 5.2.

Safely Migrating from Paperclip to Active Storage — читаем, как осуществить миграцию с Paperclip на Active Storage.

Delegating Methods In Ruby With Forwardable — учимся делегировать методы с помощью модуля Forwardable в Ruby.

Первые две части туториала по созданию SPA при помощи Rails API и Vue.js:

Книги

Rails Testing Handbook Available for Kindle — Rails Testing Handbook теперь доступна на ридерах Amazon Kindle.

Релизы

Sinatra 2.0.2 and 2.0.3 — релиз новых версий фреймворка Sinatra.

Ruby 2.6.0-preview2 — в последний день мая вышла вторая preview-версия Ruby 2.6.0, которая содержит ряд улучшений по сравнению с preview1.

Jekyll 3.8.3 — представлена новая версия популярного генератора статичных сайтов Jekyll 3.8.3.

Passenger 5.3.3: installer fixes — популярный сервер приложений Passenger обновился до версии 5.3.3.

dry-monads 1.0 — вышла стабильная версия гема dry-monads.

GitLab 11.0 released with Auto DevOps and License Management — новая версия системы управления репозиториями GitLab с функцией Auto DevOps и менеджером лицензий.

Ruby Gems

MiniSql — простой, безопасный и быстрый SQL executor для PG.

Asynchronize — гем упрощает создание асинхронных методов.

VisualizeRuby — библиотека позволяет визуализировать код на Ruby в виде структурной схемы.

Woah! — минималистичный веб-фреймворк, созданный на Rack.

Rydux — этот гем позволяет использовать функционал библиотеки Redux при работе с бэкэндом.

Послушать

The Bike Shed

156: It’s a Commercial Enterprise — ведущие и гость подкаста Olivier Lacan обсуждают важность обновления инструментария разработчика и другие темы.

158: This is How I Ruin Meetings — гость подкаста — Aaron Patterson — рассказывает о garbage collection в Ruby, о JIT-компиляторе в Ruby 2.6, а также выражает свои взгляды на функциональное программирование.

159: Confusing and Hard to Use — главная тема выпуска — легко ли использовать чистый SQL при использовании технологии программирования ORM.

Ruby Rogues

RR 365: Should I Use Ruby on Rails with Nathan Kontny — гость подкаста — известный разработчик и предприниматель Nathan Kontny — рассказывает о своем опыте разработки на Ruby on Rails.

RR 366: Build Your Own RSpec: A Gentle Metaprogramming Intro with Paweł Dąbrowski — основная тема подкаста — метапрограммирование и предметно-ориентированные языки (DSLs).

RR 367: Ruby Core Language Evolution: Moving towards functional with Victor Shepelev — гость подкаста — украинский программист Виктор Шепелев — рассказывает о функциональном программировании в Ruby.

RR 368: Improving Ruby Performance with Rust with Daniel P. Clark — ведущие и гость обсуждают, как Rust позволяет улучшить производительность приложений на Ruby.

RWpod

Посмотреть

Подборка видео с конференции RubyKaigi 2018 (на английском языке):

Июньские выпуски GoRails, в которых ведущий объясняет два принципа SOLID (Interface Segregation Principle и Dependency Inversion Principle), показывает, как мигрировать Rails-приложение с Heroku на платформу HatchBox, а также подробно разбирает OAuth API:

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

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


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


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

Похожие статьи:
[Об авторе: Андрей Пивоваров — CEO образовательного проекта GoIT] Мы не случайно родились в Украине. Я считаю, что вместо того, чтобы...
В выпуске дайджеста речь пойдет, прежде всего, о хактивизме. Положение дел на фронтах: победы и потери. Другие новости тоже имеют...
Світова фінансова криза останніх років особливо вплинула на технологічні компанії. Через це, за даними сервісу Layoffs.fyi, лише...
.NET — це платформа від Microsoft для створення програмного забезпечення. Мова С#, яку використовують для роботи з .NET, друга...
Тарас Чмут — керівник благодійного фонду «Повернись живим», що з початку війни забезпечує багатомільярдну...
Яндекс.Метрика