Ruby/Rails дайджест #24: реліз Ruby 2.6.0-preview3, оновлення JRuby до 9.2.4.1, а також вихід 5.2.2.rc1 фреймворку Ruby on Rails

Всім привіт!

У новому дайджесті тонна хороших новин для спільноти Ruby. Почнемо з того, що робота над Ruby 2.6 на завершальній стадії — на початку листопада була представлена третя preview-версія Ruby 2.6, за якою послідує вже передрелізна версія. Також вийшов ряд інших оновлень, у тому числі Rails 5.2.2.rc1, Passenger 5.3.7 і Jekyll 3.8.5. Зверніть увагу на добірку статей про Ruby 2.6 — там не тільки йдеться про нові функції, але також є бенчмарки роботи з JIT-компілятором і без нього.

Почитати

Scaling the Monolith — чек-лист по масштабуванню монолітного програми.

Tips for Writing Fast Rails: Part 2 — поради автора, як збільшити продуктивність додатків на Rails (перша частина тут ).

Bundler is Built Into Ruby 2.6.0preview3 — тепер менеджер пакетів Bundler вбудований в Ruby 2.6.0-preview3.

Deploying feature branches to have a review app — як і навіщо створювати staging-оточення для кожної гілки feature при розробці ПО.

Rails Path Helpers and the Mystery of the Missing Route Key — автор на прикладі показує, як вирішити проблему, яка виникає при відсутності route key в додатках на Rails.

Why we use Ruby on Rails to build GitLab — CEO компанії GitLab розповідає, чому для їх проекту був обраний Ruby on Rails.

Do You Ruby Test Code for Thread Safety? — автор показує, як протестувати код на Ruby на потокову безпека (thread safety) за допомогою гема threads .

Fibers Are the Right Solution — як використовувати можливості багатопоточності в Рубі для створення веб-сервера.

Airflow Architecture at Drivy — як і навіщо компанія Drivy використовує Airflow-архітектуру.

An Update on Bundler 2.0 — дізнайтеся, що нового в Bundler 2.0.

Git aliases I can't live without — автор розповідає, які псевдоніми (aliases) він використовує при роботі з Git і чому.

Finding Ruby Performance Hotspots via Allocation Stats — як збільшити продуктивність додатків на Ruby за допомогою frozen strings.

— освіжаємо в пам'яті, як працювати з Rails Credentials в Ruby on Rails 5.2.

Ruby's (not so) constants — автор розповідає про особливості використання констант в Ruby.

Ruby `allocate` method — як працює метод allocate в Ruby.

Hash rockets are good actually — автор говорить про переваги запису хешей через hash rocket.

The Benefits of Materialized Views (and how to use them in your Ruby on Rails project) — коли використовувати materialized views у додатках на Rails.

Ruby Deserialization — що потрібно враховувати при проведенні десеріалізації в Ruby.

Image Placeholder for your development environment — інструкція, як використовувати гем ImagePlaceholder в development-оточенні при розробці додатків на Ruby.

Підбірка статей про Ruby 2.6:

Добірка від AppSignal

Testing Asynchronous Threads in Ruby — вчимося тестувати асинхронні потоки в Ruby.

Fibers and Enumerators in Ruby: Turning Blocks Inside Out — детальний розбір класів Перечіслімого і Fiber в Ruby.

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

Avoiding Network Calls In Rails Tests Without Using Mocks, Stubs or VCR — простий приклад, як уникнути мережевих запитів в тестах з допомогою dependency injection.

Common Legacy Project Challenges and How to Address Them — які труднощі можуть виникнути при роботі на legacy-проектах і як їх вирішити.

When I Use Controller/Request Specs in Rails and When I don't — автор розповідає, коли слід використовувати controller specs, а коли request specs.

Rails Scaffolding and TDD Are Incompatible — чому scaffolding (генерація шаблонного коду в Rails) несумісний з test-driven development.

Добірка від Phusion

Stopping slow client DoS attacks with Puma on Passenger 6 — як запобігти slow client DOS-атаку, використовуючи Puma, Nginx і Passenger.

Your language' built-in server was never meant for production use — який веб-сервер вибрати в додатках на Ruby.

Добірка від reinteractive

When is the right time to do a code audit? — автор ділиться думкою, коли слід проводити code audit.

Using Ruby and Tesseract to Recognise Text in an Image — вчимося розпізнавати текст на зображеннях в додатках на Ruby за допомогою гема Tesseract .

Добірка від RubyGuides

Ruby Templating Engines: ERB, HAML & Slim — огляд основних механізмів обробки шаблонів в Ruby.

How to Use attr_accessor, attr_writer & attr_reader — автор на прикладах показує, як використовувати методи attr_accessor, attr_writer і attr_reader.

Ruby Coding Challenges & How to Solve Them — складність написання коду на Ruby і як їх долати.

How to Use The Ruby Alias Keyword — освіжаємо в пам'яті, як використовувати ключове слово alias і метод alias_method в Ruby.

How To Use Heredoc in Ruby — освіжаємо в пам'яті, як використовувати heredoc в Ruby.

Dup vs Clone in Ruby: Understanding The Differences — розбираємося, в чому різниця між методами dup і clone в Ruby.

Добірка від Victor Moroz

Дві частини туториала про створення Ruby гема з розширенням, написаним на Rust:

Туторіали

Migrating from Paperclip to Active Storage — в цьому туториале автор показує, як провести міграцію з Paperclip на Active Storage.

Clean RSpec configuration directory structure for Ruby on Rails gems needed in testing — інструкція, як вибрати структуру каталогу конфігурації (configuration directory) RSpec.

Using random number generators to solve problems — автор на прикладі показує, як використовувати генератор випадкових чисел в Ruby.

A beginner's Guide to Service Objects for Ruby on Rails — гайд про службові об'єкти (service objects) в Ruby on Rails для новачків.

Ruby memory, ActiveRecord and Draper — автор ділиться досвідом оптимізації пам'яті в додатку на Rails при обробці файлів CSV.

Writing GraphQL queries in native Ruby = Love — автор показує, як використовувати GraphQL в додатках на Rails.

Building SQL expressions with Sequel — як створювати SQL-вирази за допомогою інструменту Sequel .

Серія туториалов, як створити додаток на Ruby on Rails, в якому за логіку подання буде відповідати React:

Релізи

Ruby 2.6.0-preview3 — вийшла третя передрелізна версія Ruby 2.6.0 з JIT-компілятором.

Rails 5.2.2.rc1 — команда розробників Ruby on Rails представила передрелізну версію Rails 5.2.2.

JRuby 9.2.4.1 — реліз версії 9.2.4.1 інтерпретатора мови Ruby.

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

Passenger 5.3.7 — вийшла версія 5.3.7 популярного сервера додатків Passenger.

RubyMine 2018.3 (build 183.4284.145) — компанія JetBrains оновила IDE RubyMine

Ruby Gems

GraphQL::SmartSelect — плагін для бібліотеки graphql-ruby

Google Recaptcha v3 — імплементація Google Recaptcha v3 для Rails.

WebpackerCli — ця бібліотека дозволяє використовувати Webpacker в інших веб-фреймворках.

FiniteMachine — finite state machine з простим і зрозумілим синтаксисом.

Standard — Ruby Style Guide з інструментами контролю якості та налагодження коду.

Iguvium — ця бібліотека отримує таблиці з PDF-документів.

Typerb — гем для перевірки відповідності коду Ruby 2.6.

ImagePlaceholder — бібліотека для генерації плейсхолдеров в development-оточенні.

Події

Ruby Meditation #25 — 8 грудня в Києві пройде Ruby Meditation #25. Спікери розкажуть про багатопотоковому виконанні на production, важливості business development і багатьох інших цікавих темах.

Послухати

The Bike Shed

Ruby Rogues

RWpod

Ruby on Rails Podcast

The Ruby Testing Podcast

Remote Ruby

Подивитися

4 Ways to Scale on Heroku — чотири способи масштабувати додаток на Heroku.

Випуски GoRails в листопаді , в яких автор показує, як отримати доступ до параметрів в адресному рядку з view, не вдаючись до params.permit, додати аватари користувачів в Rails-додатки за допомогою ActiveStorage і як реалізувати вбудовані JavaScript-віджети в додатках на Rails:

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

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


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

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

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

Інтерв'ю - Джулі Джойс, SEO компанія Link Fish Media, США
Принципи роботи Garbage collection
Що робить бізнес-аналітик на discovery-фазі: аналіз потреб клієнта
Масове видалення пунктів меню в WordPress
Візуалізація даних у роботі аналітика: типи діаграм і яку вибрати