Ruby/Rails дайджест #23: реліз Ruby 2.5.3, оновлення Hanami до версії 1.3.0, фреймворк Action Text для Ruby on Rails 6

Всім привіт!

У жовтні Ruby-ком'юніті встигла порадувати нас хорошими новинами. Перш за все, були представлені оновлені версії мови Ruby і популярного фреймворку Hanami. Спільнота Ruby веде активну роботу над фреймворком Action Text, який увійде до складу Ruby on Rails 6 (не пропустіть добірку новин про Rails 6 від bogdanvlviv ). Також зверніть увагу, що в CircleCI додана підтримка GitHub Checks.

Почитати

Introducing Action Text for Rails 6 — що таке фреймворк Action Text, який буде включений в Ruby on Rails 6.

What is new in Rails 6.0 — добірка останніх новин про Ruby on Rails 6.

Upgrading GitHub from Rails 3.2 to 5.2 — Eileen Uchitelle з команди GitHub розповідає про оновлення проекту до версії Ruby on Rails 5.2.1.

Cache Invalidation Complexity: Rails 5.2 and Dalli Cache Store — як уникнути проблем у роботі кеш-ключів при використанні Rails 5.2.

Working with ActiveRecord Callbacks — автор ділиться порадами щодо використання колбэков ActiveRecord в Rails-додатках.

Code Audit: How to Provide the Best Quality for Your Ruby on Rails Application — як провести code audit програми на Ruby on Rails.

Microservices vs spaghetti code are not your only options — автор розглядає можливий варіант стандартизації архітектури Passenger за прикладом Kubernetes.

Meet Yabeda: Modular framework for instrumenting Ruby applications — знайомимося з Yabeda — фреймворком для збору метрик в додатках на Ruby.

How Devise keeps your Rails app passwords safe — розбираємося в деталях: як працює популярний гем Devise.

CircleCI launches support for GitHub Checks — інструмент CircleCI тепер підтримує GitHub Checks.

Where Ruby/Sinatra falls short — що слід враховувати при розробці додатків на Sinatra.

Ruby Method Lookup, RubyVM.stat and Global State — автор детально описує, як і навіщо уникати визначення глобальних методів і констант.

Some notes on what's going on in ActiveStorage — стаття допоможе розібратися з тим, як працює Active Storage в Ruby on Rails.

Pair With Me: Rubocop Cop that Detects Duplicate Array Allocations — вчимося використовувати популярний лінтер RuboCop для прискорення продуктивності Rails-додатків.

12 Factor CLI Apps — знайомимося з методологією 12 factor app, розробленої компанією Heroku для створення CLI-додатків.

Destructuring Methods in Ruby — як виконати деструктуризацию методів в Ruby.

Rails Parts — автор ділиться досвідом реструктуризації програми на Rails.

Ruby gotchas for the JavaScript developer — на що варто звернути увагу JavaScript-розробнику при вивченні Ruby.

Ruby Plotting with Galaaz: An example of tightly coupling Ruby and R in GraalVM — вчимося будувати графіки мовою R в Ruby-додатках за допомогою бібліотеки Galaaz.

Добірка від AppSignal

The Magic of Class-level Instance Variables — які можливості дає використання class-level instance variables в розробці на Ruby.

The innards of a RubyGem — автор показує, як створити гем без використання Bundler.

Building a Ruby C Extension From Scratch — коротка інструкція, як писати Ruby-розширення на мові C.

Добірка від BigBinary

Ruby 2.6 adds RubyVM::AST module — розбираємося з модулем RubyVM::AST в Ruby 2.6.

Ruby 2.6 Range#cover? now accepts Range object as an argument — метод Range#cover? в Ruby 2.6 приймає об'єкти класу Range в якості аргументів.

Rails 5.2 adds DSL for configuring Content Security Policy header — в Rails 5.2 додано DSL для конфігурації Content Security Policy.

Rails 5.2 disallows raw SQL in dangerous Active Record methods preventing SQL injections — версія 5.2 фреймворку Ruby on Rails не дозволяє використання чистого SQL для запобігання SQL injections.

Skip devise trackable module for API calls to avoid users table getting locked — автор ділиться досвідом вирішення проблеми, пов'язаної з роботою модуля trackable, при використанні популярного гема Devise.

Добірка від Bozhidar Batsov

A Better Way to Compare Versions in Ruby — як порівнювати версії при розробці на Ruby.

A Safer RuboCop — автор розповідає про безпечному автоисправлении в RuboCop.

Добірка від Igor Springer

5 security issues in Ruby on Rails apps from real life — автор на основі власного досвіду перераховує п'ять вразливостей в Ruby on Rails додатках.

How to log HTTParty requests — як реєструвати всі запити, що передаються гемом httparty .

`ActiveSupport::StringInquirer` magic — як і навіщо використовувати клас ActiveSupport::StringInquirer.

— розбираємося з класом ActiveSupport::ArrayInquirer.

Добірка від Jason Swett

Exactly What Makes «Bad» Code Bad? — автор ділиться своєю думкою про те, що таке поганий код і чому.

How to See Your Feature Specs Run in the Browser — як запускати feature tests у браузері.

Factories and Fixtures in Rails — огляд трьох способів генерації тестових даних в додатках на Rails.

Добірка від Josef Strzibny

Debugging silently failing compilation aka Webpacker can't find application.js in public/packs/manifest.json — автор ділиться досвідом налагодження помилок компіляції при використанні Webpacker.

Building auto login for fast Rails development with Sorcery — простий спосіб прискорити процес розробки ПЗ за допомогою автоматичної аутентифікації.

Добірка від Mehdi Farsi

5 Ruby Tips You Probably don't Know — автор описує п'ять можливостей мови Ruby, про яких багато розробники не знають.

The Evolution of Ruby Strings from 1.8 to 2.5 — освіжіть в пам'яті, які зміни відбулися з класом String від версії Ruby 1.8 до 2.5.

Why the Ruby community encourages Duck Typing — автор ділиться думкою, чому співтовариство Ruby заохочує duck typing.

The short guide to learning how Classes work in Ruby — цей короткий гайд допоможе новачкам вивчити, як працюють класи в мові Ruby.

Добірка від reinteractive

How to structure JavaScript code when using AJAX in Rails — два способи структурувати JavaScript-код при використанні AJAX в додатках на Rails.

To Microservice or Monolith, that is the question — автор ділиться думками про вибір архітектури.

Добірка від RubyGuides

How to Check If a Variable is Defined in Ruby — як перевірити, ініціалізований мінлива в Ruby.

Understanding The Differences Between Puts, Print & P — освіжаємо в пам'яті, в чому різниця між трьома способами виведення даних в Ruby.

How to Use RSpec Mocks (Step-By-Step Tutorial) — покроковий туторіал про використання mocks в тест-фреймворку RSpec.

How to Use the Ruby Grep Method (With Examples) — автор показує, як використовувати метод grep Ruby з докладними прикладами.

How to Read & Parse CSV Files With Ruby — як зчитувати і записувати файли csv, а також які існують конвертери і геми для роботи з ними.

How to Use Ruby Any, All None & One — детальний розбір чотирьох методів Перечіслімого.

What is Ruby on Rails? — оглядова стаття про Ruby on Rails: філософія фреймворку, причини стати Rails-розробником і як почати вивчення Rails.

How to Use The Ruby Map Method (With Examples) — як використовувати метод map в Ruby.

Understanding Method Visibility In Ruby — в чому різниця між public, private, і protected методами в Ruby.

How To Delegate Methods in Ruby — автор показує кілька способів делегування методів в Ruby.

Добірка від thoughtbot

Tab completion in GNU Readline: Ruby edition — як реалізувати автозаповнення командного рядка за допомогою GNU Readline в Ruby.

Writing Less Error-Prone Code — автор ділиться порадами, як писати більш якісний код.

Туторіали

How to Build Chat into Ruby on Rails Applications — як реалізувати live chat у додатку на Ruby on Rails.

Simplifying internal validations using Dry-Validation — вчимося відокремлювати валідацію даних від бізнес-логіки за допомогою гема dry-validation .

How we halved our memory consumption in Rails with jemalloc — автор показує, як зменшити використання пам'яті в Rails-додатку за допомогою менеджера пам'яті jemalloc.

Scale Out Multi-Tenant Apps based on Ruby on Rails — інструкція з горизонтального масштабування багатокористувацьких додатків на Ruby on Rails.

Using Ruby on Rails 5.2 Active Storage — як налаштувати Active Storage при роботі з версією 5.2 фреймворку Ruby on Rails.

How to Use Pattern Repository with Active Record — автор показує, як використовувати pattern repository при роботі з Active Record в додатках на Rails.

How to: Execute RSpec in parallel locally — як забезпечити паралельне виконання тестів RSpec в локальному оточенні.

Launching Your Own Ruby Gem — Part 1: Build It — перша частина докладної інструкції, як створити гем.

Testing Ruby's CGI — як тестувати CGI в Ruby.

Ruby async await — автор розповідає, як реалізувати функцію async await в Ruby.

Custom URLs in Ruby on Rails: How you can use descriptive slugs instead of IDs — як реалізувати настроювані URL в додатку на Rails.

Ruby and Rack: The beginning — розбираємося, як Rack взаємодіє з веб-серверами Webrick, Mongrel, Thin і Puma.

Handling exceptions in Rails API applications — автор ділиться досвідом обробки виключень в Rails API додатках.

How to use HMAC-SHA256 to connect to a REST API like Ticketmatic — коротка інструкція, як з'єднатися з REST API, якщо використовується алгоритм HMAC-SHA256.

Цикл статей про створення data API за допомогою Ruby on Rails 5:

Релізи

Ruby 2.5.3 — вийшла версія 2.5.3 мови Ruby.

Hanami 1.3.0 — представлена версія 1.3.0 популярного фреймворку Hanami.

Ruby Gems

minitest-mock_expectations — гем для підтвердження виклику методу при роботі з фреймворком Minitest.

Salus — інструмент для координації роботи сканерів вразливостей.

Enkrip — гем шифрує і дешифрує атрибути моделей Active Record.

OurPC — експериментальна реалізація gRPC клієнта і сервера.

Події

Ruby Meditation #24 — 3 листопада в Києві пройде Ruby Meditation #24. Теми включають domain-driven design в Rails, runtime model в Ruby, оптимізацію Capybara.

Конференції

RubyConf 2018 — з 13 по 15 листопада в Лос-Анджелесі (США) проходить конференція RubyConf 2018; конференцію відкриває творець мови Ruby Yukihiro 'Matz' Matsumoto.

Послухати

The Bike Shed

172: What I Believe About Software — ведучий і гість подкасту обговорюють основні складові процесу розробки ПЗ: що таке story points, коли робити рефакторинг і code review і т. д.

175: Tell Me When it's Real — учасники дискусії обговорюють новітні тренди в світі веб-розробки.

Ruby Rogues

— учасники дискусії обговорюють, чи варто створювати нові інструменти або ж купувати сторонні рішення.

RR 383: «Rbspy: A New(ish) Ruby Profiler!» with Julia Evans — головна тема подкасту — профайлер Ruby Spy.

RR 384: «Sonic Pi» with Sam Aaron — в гостях у провідних Sam Aaron — розробник середовища програмування для створення музики Sonic Pi.

RR 385: «Ruby/Rails Testing» with Jason Swett — в гостях у Ruby Rogues Jason Swett — провідний подкасту The Ruby Testing.

RR 386: Web Console Internals with Genadi Samokovarov — основна тема подкасту — використання веб-консолі для налагодження додатків на Ruby.

RWpod

Ruby on Rails Podcast

246: Trust Arts, Trust Rails with Patrick FitzGerald and Danielle Greaves — учасники дискусії обговорюють свої улюблені аспекти фреймворку Ruby on Rails.

247: Introducing Action Text for Rails 6 with Javan Makhmali — випуск присвячений фреймворку Action Text, який увійде до складу Ruby on Rails 6.

248: Diving Into Ruby Weekly with Peter Cooper — ведуча подкасту розмовляє з Peter Cooper — редактором розсилки Ruby Weekly.

The Ruby Testing Podcast

013 — The Balance Between Testing and Feature Development with Dave Kimura — як знайти баланс між написанням функціонального коду і тестів.

014 — Chris Oliver, Creator of GoRails — ведучий і гість подкасту обговорюють безліч тем, в тому числі integration та unit tests, а також тест-фреймворк Cucumber.

016 — Fast Tests with Vladimir Dementyev — учасники дискусії обговорюють, як прискорити проходження тестів на Ruby.

Remote Ruby

What else can Rails add by default? — учасники подкасту обговорюють оновлення GitHub до Rails 5.2, фреймворк Action Text, необхідність додати повнофункціональну вбудовану аутентифікацію в Rails.

The Yak Shave

4: Folks are in a Stink — ведучий і гість подкасту обговорюють важливість документації в процесі розробки ПЗ, а також діляться радами по роботі з базами даних, API і т. п.

5: A Series of Anecdotes — учасники дискусії обговорюють важливість зворотного зв'язку (feedback) при розробці open source software.

6: The Podcast After the Last Podcast — послухайте, що таке WebAssembly і як його можна використовувати у веб-розробці.

Подивитися

Alpha preview: Action Text for Rails 6 — творець Ruby on Rails David Heinemeier Hansson розповідає про фреймворку Action Text, який увійде до складу Ruby on Rails 6.

Жовтневі випуски GoRails , у яких ведучий продовжує серії скрінкасти про nested comments і ElasticSearch, показує, як створити додаток на основі Slack slash-команд, а також як використовувати гем name_of_person :

Підбірка платних скрінкасти від Drifting Ruby у жовтні:

Випуски платних скрінкасти від Ruby Tapas за жовтень:


Щодо тем/матеріалів/івентів, які варто додати в наступний випуск дайджесту, пишіть в коментарях або на volodymyr.vorobiov@rubygarage.org . Дякуємо за допомогу в підготовці дайджесту команді RubyGarage.


? Попередній випуск: Ruby дайджест #22

Опубліковано: 03/11/18 @ 11:00
Розділ Різне

Рекомендуємо:

Туторіал з налаштування Rails-додатків на Amazon EC2 з Chef. Частина 3
Як валідувати продуктові гіпотези. Досвід Google, MacPaw і SendPulse
Финстрип за Жовтень 2018, інфо-сайти. Вперше 100К+
Чому Java все ще не торт. Yet
DOU Hobby: Мотоподорожі — незамінний інструмент для звільнення мозку від зайвого