Ruby/Rails дайджест #31: другий реліз-кандидат Rails 6, перша мажорна версія ruby-prof, Aaron Patterson про рантайме Ruby
Дайджест створено у співавторстві з Мариною Завийбородой , Copywriter в RubyGarage.
Всім привіт! Почнемо з того, що вийшов другий реліз-кандидат Rails 6, в якому було додано 172 коміта після релізу минулій версії. Через 14 років розробки випущена перша мажорна версія інструменту профілювання ruby-prof , надає звіти і високу швидкість обробки коду.
Тренди в співтоваристві Ruby
Співтовариство продовжує ділитися думкою про Sorbet: Подкаст з Paul Tarjan .
Aaron Patterson з GitHub обговорює мова Ruby і його runtime в Software Engineering Radio .
Cookpad провели Ruby Hack Challenge — захід, присвячений занурення розробників в роботу MRI.
Почитати
Hiding .gemrc credentials in dotfiles — корисний лайфхак для тих, хто хоче приховати .gemrc credentials в дотфайлах.
I'm worried about Ruby future — скільки буде існувати Ruby, стільки й будуть вестися розмови про його похмурому майбутньому :) У статті автор наводить 3 причини, чому Ruby «вже не той». Погоджуватися чи ні — вирішувати вам.
Ruby 3 gathering/hack challenge summary — огляд та підсумки митапа, присвяченому Ruby 3.
12 Factor Rails Settings — автор ділиться досвідом зберігання конфігурацій в змінних оточення.
A weird Capybara error in `within` block — рішення помилки в блоці 'within' при роботі з Capybara.
Ruby on Rails vs Django — Which One To Pick For Your Web Project? — порівняння Ruby on Rails і Django в якості фреймворку для стартапу.
Linting Ruby In Your Editor — короткий огляд 3 розширень лінтер для Vim, Visual Studio Code та Emacs.
When To Use and Rails React in Your Project — Rails і React можуть бути дуже ефективними рішеннями для проекту; автор розповідає про переваги використання двох технологіях на проекті.
Productive Procrastination for Programmers — works for Ruby and Elixir — прокрастинація може бути продуктивною, вирішуючи задачки з статті.
Where Does Rails Spend Its Time? — результати бенчмаркінгу Ruby 2.6 (поточного стабільного релізу).
Ruby 2.7 and the Compacting Garbage Collector — огляд Ruby 2.7 і compacting garbage collector, який розробляв Aaron Patterson.
Добірка від BigBinary про Rails 6
Традиційна добірка від BigBinary про всі оновлення в Rails 6:
Rails 6 reports object allocations made while rendering view templates
Rails 6 adds ActiveRecord::Relation#annotate
Rails 6 adds hooks to Active Job around retries and discards
Rails 6 adds support for Multi Environment credentials
Rails 6 adds before? and after? to Date and Time
Добірка від Evil Martians
Ruby on Whales: Dockerizing Ruby and Rails development — докладний туторіал по розгортаю додатків на Ruby за допомогою Docker.
GraphQL on Rails: Updating the data — друга частина туториала з розробки додатків на GraphQL з Rails на бэкенде і React/Apollo на фронтенде. У цій частині йдеться про клієнтському кешуванні і способи оновлення даних.
GraphQL on Rails: On the way to perfection — третя і фінальна частина туториала, яка присвячена приведення коду у відповідність принципам DRY та усунення помилок.
Добірка від Daniel Doubrovkine
Asserting Existence with Mocha, Chai and TypeScript Strict Null Checks — тестування TypeScript коду з допомогою Mocha і Chai.
Handling of HTTP Headers in Grape with Rack and Rails — туторіал по обробці HTTP-заголовків у Grape на Rack і Rails.
Getting Started with Typescript — короткий туторіал для новачків в Typescript.
Туторіали
Example Gitlab Pipeline Configuration for Rails Projects — докладний туторіал з конфігурацією пайплайна Gitlab для проектів на Rails.
Brewing our own Template Lexer in Ruby — приклад імплементації lexer'а для темплейтів в Ruby.
Minimum viable example of calling Rust from Ruby without a gem — виклик Rust коду Ruby без використання гемов.
Setting up Application Performance Monitoring in DataDog in your Rails App — приклад налаштування моніторингу продуктивності програми в DataDog.
Benchmarking a page protected by a login with Apache Benchmark — туторіал по використанню HTTP бенчмаркінгу для додатків, захищених логіном.
Reading Ruby Metaprogramming inside Devise — складно уявити собі проект на Rails без використання Devise. У цьому туториале розглядається приклад метапрограммирования з гемом Devise.
Dissecting Code With Ruby's caller Method — інспектування коду Ruby за допомогою caller методу.
Handling deletes with Null Object Pattern in Ruby — автор ділиться досвідом обробки вилучень з допомогою Null Object Pattern на проекті, який приводили у відповідність з GDPR.
Ruby on Rails Developer Series: Spinning Up a JSON API in Minutes — приклад прискорення JSON API за лічені хвилини.
Kubernetes Deployments: The Ultimate Guide — докладний туторіал по деплою додатки з допомогою Kubernetes.
Геми
query_track — інструмент для відловлювання повільних SQL запитів.
tty-logger — красивий виведення тексту в термінал.
ahoy_email — збір аналітики поверх ActionMailer.
transproc — бібліотека для роботи з Ruby об'єктами у функціональному стилі.
time_calc — новий гем для операцій з часом в Ruby.
Послухати
Ruby Rogues
RR 422: Build Chatbot Interactions in Ruby with Daniel Pritchett — провідні подкасту обговорюють розробку чатботов з допомогою фреймворку Lita та інфраструктури Gremlin.
RR 421: Scaling and Shopify with Kir Shatrov — тема подкасту — досвід Shopify в масштабованості їх програми та планування потужностей.
RR 418: The Life and Death of a Rails App with Olivier Lacan — ведучі обговорюють проблему технічного боргу і чому важливо створювати легко підтримувані Rails-додатки.
RWpod
RWPod Кафе 10: D?vid Hal?sz — інтерв'ю з D?vid Hal?sz про його внесок в Rails-ком'юніті, роботі над open source проектами і його прийдешнє виступі на RubyC.
Remote Ruby
Joined by Ernesto Tagwerker — в цьому епізоді провідні подкасту, Джейсон і Кріс, спілкуються з Ернесто Тагверкером — засновником Ombu Labs (агентства швидкої розробки програмного забезпечення) і Fast Ruby (оновлення Ruby on Rails). Разом вони обговорюють старт кар'єри в Ruby для новачків, оновлення Rails і багато іншого.
Joined by Piotr Solnica — подкаст з Piotr Solnica, творцем ROM і членом основної команди dry-rb про ідею ROM і dry-rb, про допомогу в складанні Hanami 2, змішуванні функціонального та об'єктно-орієнтованого програмування в Ruby і багато іншого!
Joined by Chris Arcand — епізод з Крісом Аркандом, старшим інженером в @HashiCorp, які створюють Terraform & Sentinel. Кріс ділиться тим, чого навчився, працюючи віддалено, і дає кілька порад для інтерв'ювання та роботи віддалено.
Ruby on Rails Podcast by 5by5
279: Scaling & Training Rails with Anand Dhillon — подкаст присвячений темі Domain-Driven Design і реалізації машинного навчання у Cover .
278: Introducing Sorbet: A Ruby Typechecker with Paul Tarjan — подкаст c Paul Tarjan, працюючим в Stripe над компонентами продуктивності та інфраструктури для розробників. Він є технічним керівником Sorbet, новим тайп-чекер для Ruby.
277: Caching GraphQL with Michael Kelly — подкаст c Michael Kelly, старшим інженером Stackshare і пристрасним open source помічником. Він є автором гема graphql-cache, плагін кешування для graphql-ruby.
276: Introducing ActionView::Component with Joel Hawksley — подкаст c Joel Hawksley, інженером-програмістом в GitHub, який очолює впровадження підтримки ActionView :: Component в ядро Rails.
Події
Rails Girls Dnipro 2019 — 6-7 вересня у Дніпрі відбудеться Rails Girls — безкоштовний дводенний воркшоп для дівчат, які мріють спробувати веб-розробку на Ruby on Rails. На воркшопі учасниці будуть створювати своє перше веб-додаток в парі з ментором, слухати мотиваційні виступи від Ruby/Ruby on Rails розробників та багато іншого. Подробиці і посилання на реєстрацію в івенті на Facebook .
RubyC — the biggest Ukrainian Ruby conference — щорічна конференція RubyC пройде 14-15 вересня в Києві. Лайнап спікерів вже визначений, а квитки варто взяти заздалегідь: залишилися пакети Late Birds.
? Попередній випуск: Ruby дайджест #30
Опубліковано: 09/08/19 @ 10:00
Розділ Різне
Рекомендуємо:
Як ми розробили функцію спільного написання листів email-клієнта Spark
DOU Hobby: Like A Local – прогулянки по Києву і екскурсії для гостей міста
Як розподілити вагу з розділів на категорії?
Як провести тестування на безпеку: керівництво для Manual QA
Якщо зміни, то глобальні, або Як я опинився в Люксембурзі