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

Похожие статьи:
IncubateX Ukraine — международный продуктовый хакатон со свободной темой, который пройдёт 27-28 августа в киевском офисе ZEO Alliance. Для участия...
Сьогодні Кабмін звільнив голову Державної служби спеціального зв’язку та захисту інформації Юрія Щиголя та його заступника...
Компанія Atola Technology переходить на чотириденний робочий тиждень. Поки що це буде експериментальний формат на літній сезон....
До вашої уваги дайджест навчальних програм для тих, хто починає свою кар’єру в ІТ. В цьому номері зібрані можливості,...
Сьогодні Верховна Рада усунула неузгодженості в законопроєкті про цифровізацію ЗСУ. Про це у своєму Telegram-каналі...
Яндекс.Метрика