Ruby/Rails дайджест #20: первая предрелизная версия Rails 5.2.1, версия 2.0.0 гема Pundit, интересные материалы с RubyHACK 2018

Всем привет! Разгар лета не отразился на активности Ruby-сообщества — кроме релизов новых версий гемов и Rails, также проводилось множество конференций и митапов. Все подробности — в нашем новом дайджесте.

Почитать

Running JRuby on the Graal JIT — автор рассказывает о производительности интерпретатора JRuby, запущенного на виртуальной машине GraalVM.

E-Commerce at Scale: Inside Shopify’s Tech Stack — разработчикам на e-Commerce проектах будет интересно узнать подробности о стеке технологий Shopify.

Notes on writing Service Objects — автор делится советами по написанию service objects.

Escaping the SPA rabbit hole with modern Rails — как избежать проблем в написании SPA (single-page applications) на Rails.

How to Create an API Wrapper of an External Service in Rails — автор показывает, как написать обертку для внешнего API.

Refactory scenario: removing conditional blocks and extracting code to a private method — простой и полезный способ рефакторинга кода в Rails.

Doing more on reads vs writes — автор делится мнением о балансе между сложностью чтения и записи данных.

Preventing False Positives in RSpec When Testing Exceptions — как избежать ложных положительных результатов при тестировании исключений при помощи RSpec.

Don’t Step on a Rake, Use Rake::DSL — как создать wrapper class для Rake-задач, чтобы не загрязнять top-level scope.

Designing job queue in Redis — учимся создавать job queue с помощью Redis.

My favorite parts of Ruby — автор делится мнением о некоторых чертах языка Ruby.

Making Ruby Yours — как с помощью Refinements безопасно изменять методы, которые объявлены в стандартной библиотеке Ruby.

Ruby 2.6 adds Matrix#antisymmertic? — в Ruby 2.6.0-preview2 можно использовать метод Matrix#antisymmetric?, чтобы определить тип матрицы.

Painlessly managing long running processes in your views using Ruby on Rails — как легко настраивать долго выполняющиеся задачи в представлениях при помощи инструмента fie.

Hiding .gemrc credentials in dotfiles — автор показывает, как обеспечить безопасность хранения учетных данных в dotfiles.

Stop shipping untested Ruby code with undercover — как гем Undercover помогает выявлять код на Ruby, не покрытый тестами.

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

Ruby Memory Environment Variables — Simpler Than They Look — как environment variables помогают оптимизировать использование памяти в приложениях на Ruby.

Ruby’s Global Method Cache — узнайте, что такое global method cache в Ruby и как его размер влияет на скорость работы приложений.

Can I Use Ten 10% Speedups to Make Ruby Instant? — автор объясняет, как различные методы ускорения оптимизируют работу приложения на Ruby.

Подборка от AppSignal

Custom Exceptions in Ruby — подробная инструкция о том, как работать с собственными исключениями (custom exception) в приложениях на Ruby.

Under the Hood: «Slurping» and Streaming Files in Ruby — автор рассказывает и показывает, как работать с большими файлами при помощи встроенных в язык Ruby инструментов.

JavaScript-sprinkled Rails Applications — узнайте, как JavaScript sprinkles помогают ускорить обработку страниц с динамическим или пользовательским контентом в приложениях на Rails.

Generating Random Numbers in Ruby — учимся генерировать случайные числа различными способами в Ruby.

Подборка от BigBinary

Rails 5.2 added method write_multi to cache store — Rails 5.2 позволяет делать несколько записей в хранилище кэша одновременно при помощи метода write_multi.

Speeding up Docker image build process of a Rails application — автор делится опытом ускорения процесса создания образа Docker в приложении на Rails.

Продолжение цикла статей о нововведениях в Ruby 2.6:

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

What Is Ruby Used For? — полезная статья для новичков, в которой автор рассказывает о языке Ruby и фреймворке Rails.

How to Use the Each Method in Ruby — статья подробно описывает, как работает метод each в Ruby.

Learn How to Use Ruby Arrays in Less Than 10 Minutes — полезный гайд, который объясняет, как использовать массивы в Ruby.

How to Use Strings in Ruby — освежаем в памяти, что такое строки (strings) и как они используются в Ruby.

How to Use the Ruby Map Method — в этой статье автор подробно разбирает метод map в Ruby.

What Is a Ruby Enumerable and Why Would You Use It? — для чего нужен модуль Enumerable в Ruby и как его использовать.

Why You Too Should Learn Elixir — почему Ruby/Rails разработчикам полезно изучать язык программирования Elixir.

If vs. Unless in Ruby — вспоминаем, чем отличаются операторы if и unless.

Ruby’s Sort and Sort_by — автор описывает различные алгоритмы сортировки и поясняет, как работают методы sort и sort_by в Ruby.

What Is a Ruby Reducer? — учимся использовать метод reduce в Ruby.

How to Learn Ruby on Rails in 2018, the Ultimate Guide — полезные советы, с чего начать изучение Ruby on Rails.

Статьи о фреймворке RSpec:

Подборка от Codeship

Measuring Performance Metrics in Rails — какие метрики важны для измерения производительности приложений на Rails и какими инструментами пользоваться для этого.

Using AWS EKS in Your Continuous Integration Workflow — туториал показывает, как настроить процесс CI/CD для приложения, развернутого на сервисе AWS EKS, при помощи инструмента Codeship Pro.

Подборка от Imaginary Cloud

Queries on Rails — Showcasing Active Record and Arel — автор на примерах показывает, как составлять запросы в Active Record.

Ruby on Rails — Send Emails with Style — узнайте, какие гемы упрощают процесс верстки рассылок в Rails-приложениях.

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

Why I Recommend Against Using Cucumber — автор делится мнением о Cucumber — популярном фреймворке для тестирования.

Things You Can (and Should) Ignore When Getting Started with Rails Testing — узнайте, какими инструментами тестирования для Rails, по мнению автора, можно пренебречь.

Подборка от Netguru

11 Books Every Ruby on Rails Developer Should Read — подборка книг, которые следует прочитать каждому Ruby on Rails разработчику.

Python Vs. Ruby for Web App Development — автор сравнивает два популярных языка программирования, используемых для разработки веб-приложений.

Подборка от Railsware

Ruby on Rails for FinTech Products. Is it a fit for your startup? — автор делится своим мнением по поводу использования фреймворка Rails для создания Fintech-приложений.

Ruby on Rails Hosting Providers for Your Application — узнайте, какие критерии важны при выборе хостинга для Rails-приложения, а также какие основные варианты предлагаются на рынке.

Подборка от RubyGuides

The Definitive RSpec Tutorial With Examples — подробная инструкция по написанию тестов при помощи RSpec.

Everything You Need to Know About Ruby Operators — автор описывает различные типы операторов в Ruby и на примерах показывает, как их использовать.

Подборка от Rubyplus

Integrating Turnjs with Rails 5 — как интегрировать JavaScript-библиотеку Turn.js в приложение на Rails 5.

Handing Undeliverable Email Address in a Rails app — учимся настраивать обработку электронных писем с неправильно указанным адресом в приложениях на Rails.

Bootstrap 4.1 alerts in Rails 5 Apps — как использовать нотификации в стиле сигналов Bootstrap 4.1 в приложениях на Rails.

Dealing with Money in Rails Apps — как использовать гем money-rails в Rails-приложениях, работающих с разными валютами.

Capistrano 3.11 Tips — полезные советы о том, как работать с инструментом Capistrano.

Deliver Email With Amazon SES In A Rails app — инструкция, как настроить отправку и получение электронных писем при помощи сервиса Amazon SES в приложении на Rails.

Finger Printing to Identify Visitors to Your Site — учимся настраивать идентификацию браузера (fingerprinting) в Rails-приложениях.

Rails 6 : find_or_create_by on a has_many relationship — в Ruby on Rails 6.0.0.alpha метод find_or_create_by можно вызывать на ассоциации has_many.

Dealing with Spaces in S3 Files Stored within Folders in a Bucket — как убрать пробелы в названиях файлов, хранящихся в Amazon S3.

Generating Presigned URL for AWS S3 Files — как ограничить доступ к файлам, хранящимся в Amazon S3, при помощи назначенных URL.

Подборка от Tomas Valent

Rails 5.2 credentials cheat cheat — советы, как пользоваться шифрованными учетными данными (encrypted credentials) в Rails 5.2.

Ruby on Rails Active Storage how to change host for url_for — как установить хост по умолчанию для метода url_for.

Туториалы

Build a Realtime Serverless GraphQL API with Websockets on AWS — подробная инструкция, как написать бессерверный GraphQL API с помощью сервиса AWS AppSync.

Upgrade Rails from 5.0 to 5.1 — как обновить приложение на Ruby on Rails с версии 5.0 до 5.1.

Visualizing and optimizing JS bundle size in Rails/Webpacker apps — детальная инструкция о том, как оптимизировать размер bundle.js в приложении на Rails с компонентом на React.

Adding Webpacker to a legacy Rails app — учимся интегрировать гем Webpacker в legacy-приложение на Rails.

Writing Testable API Documentation Using APIB and Dredd — пошаговый туториал показывает, как написать пригодное к тестированию Rails API приложение и документацию к нему.

Powering your Ruby & Rails development with Pry — в этом туториале автор показывает, как использовать интерактивную консоль Pry в разработке на Ruby on Rails.

ActiveRecord — Part 2: Useful methods — учимся использовать полезные методы в Active Record.

How to use Sequel with ActiveRecord database — этот туториал научит вас использовать гем Sequel при работе с базой данных Active Record.

Thin and maintainable Rails mailers: how we refactored Rails mailers at mkdev — автор делится опытом рефакторинга отправки писем в приложении на Rails 5.1.

Running rails tests under CircleCI 2.0 with MariaDB — краткий туториал по настройке CircleCI 2.0 для Rails-приложения.

Adding Authorization to Sinatra with Pundit — автор показывает, как использовать инструмент Pundit в приложениях на фреймворке Sinatra.

Create your own static site generator — простой способ написать генератор статических сайтов на Ruby.

Training Tesseract 4 models from real images — как тренировать новые модели для Tesseract — популярного open source инструмента для оптического распознавания символов.

Релизы

Rails 5.2.1.rc1 — первая предрелизная версия фреймворка Rails 5.2.1.

Pundit — вышла версия 2.0.0 популярного гема Pundit.

RubyMine 2018.2 (build 182.3684.86) — компания JetBrains выпустила очередное обновление своей IDE RubyMine; сборка 182.3684.86 имеет ряд улучшений, таких как возможность переформатировать код в формате YAML, использовать debugger для удаленно выполняемых процессов, поддержку новых функций JavaScript 2.9 и 3.0 и так далее.

Ruby Gems

SimpleSerializer — гем преобразует объекты Ruby в формат JSON.

XmlMatchers — гем предоставляет matchers для тестирования XML в RSpec.

StaleOptions — библиотека кэширует HTTP-ответы.

YaEnum — гем расширяет возможности использования данных типа enum в Ruby.

OpenStreetMap — библиотека для интеграции OpenStreetMap API.

Послушать

The Bike Shed

161: Re-Incoherence — ведущие подкаста обсуждают производительность Rails, чрезмерное использование памяти в Active Record 5.2, а также rebalancing coherence.

162: You Have Ruined Your Rails App — в этом подкасте ведущие и Sam Phippen обсуждают, почему сложно поддерживать приложения на старых версиях Ruby, что такое service-oriented architecture (SOA), а также много других интересных тем.

163: Insert Some Colons For Me — главная тема подкаста — IDE Visual Studio Code от компании Microsoft.

164: A Piece of My Identity — ведущие подкаста Derek Prior и Sean Griffin сообщают о своем уходе из проекта; их сменит новый ведущий — Chris Toomey.

Ruby Rogues

RR 369: How Ruby 2.5 Prints Backtraces and Error Messages with Vishal Telangre — ведущие и гость подкаста Vishal Telangre из компании BigBinary обсуждают преимущества обратного порядка вывода backtrace и сообщений об ошибках в Ruby 2.5.

RR 370: How I Built Timeasure with Eliav Lavi — основная тема подкаста — гем Timeasure, который позволяет измерить производительность методов в Rails-приложении на production.

RR 371: The Modular Monolith: Rails Architecture with Dan Manges — гость подкаста — Dan Manges из компании Root — рассказывает об архитектуре Modular Monolith для приложений на Rails.

RWpod

The Ruby Testing Podcast

  • 003 — Aaron Sumner — ведущий берет интервью у Aaron Sumner — автора книги Everyday Rails Testing with RSpec.
  • 004 — Yoseph Radding — в этом выпуске ведущий и гость подкаста обсуждают понятие TDD, принципы SOLID, а также шаблоны проектирования (design patterns).

Посмотреть

www.youtube.com/watch?v=gTNC26BtRFc#t — презентация создателя языка Ruby Yukihiro «Matz» Matsumoto на митапе RubySG в Сингапуре.

Writing Ruby Like it’s 2018 — доклад Joe Leo на прошедшей в июне конференции GORUCO 2018.

OmbuCast Episode 1 — Performance improvements using derailed_benchmarks — ведущий показывает, как использовать гем Derailed Benchmarks для тестирования приложений на Ruby on Rails.

Showcase of Scraper App, Visual Web Scraping Prototype — в этом скринкасте Paweł Urbanek показывает прототип приложения для веб-скрейпинга Scraper App.

Подборка докладов с прошедшей в мае конференции RubyHACK 2018:

Июльские выпуски GoRails, в которых ведущий подробно разбирает, как интегрировать приложение на React Native с Rails API при помощи протокола OAuth для аутентификации, а также показывает, как отсылать webhooks при помощи экспоненциальной задержки (exponential backoff):

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

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


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


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

Похожие статьи:
Уже который год украинские IT-компании провожают октябрь, устраивая парад зомби и монстров в своих офисах. Представляем вашему вниманию...
С 19 апреля по 15 июня мы проводим конкурс статей на ДОУ. Первый приз — 10 тыс. грн. О чем писать? ДОУ рассказывает о том, что происходит...
Минув рік з моменту попереднього опитування. Дізнаймося, що змінилося за цей час, які мови програмування втрачають популярність,...
Асоціація IT Ukraine, Lviv IT Cluster та Kharkiv IT Cluster закликали уряд не ухвалювати законопроєкт про мобілізацію № 10449 в нинішній редакції...
Ежегодно мы составляем портрет украинского айтишника — узнаём профессиональный опыт, привычки, образ жизни. Пришло время...
Яндекс.Метрика