Ruby/Rails дайджест #15: юбилей Ruby, JIT в Ruby 2.6, DHH и серия видео On Writing Software Well

Всем привет! В феврале произошло много чего интересного. Во-первых, Ruby исполнилось 25 лет, о чем написал Матц в своем Твиттере. Во-вторых, DHH выложил серию видео On Writing Software Well. В них DHH разбирает код Basecamp и рассуждает на интересные темы, например, использование callbacks для написания вспомогательной логики.

Почитать

Первые обзоры JIT в Ruby

The Method JIT Compiler for Ruby 2.6 — в феврале в Ruby 2.6 появился JIT compiler. В статье автор делится первыми впечатлениями от этой реализации.

Playing with Ruby’s new JIT: MJIT — обзор реализации JIT (just in time compiler), добавленной в Ruby 2.6.

Ruby’s New JIT — еще один обзор JIT в Ruby 2.6.

Ruby Concurrency: Building a Timeout Queue — построение многопоточной очереди с ограничением времени выполнения в Ruby.

Ruby String Literals vs Value Objects. Overengineering? — пример того, как Rails 5 API Attributes можно применять для рефакторинга антипаттерна Primitive Obsession.

Humming along — Analyzing RubyGems stats for 2017 — Infinum проанализировали экосистему Ruby в 2017: количество новых созданных гемов, загрузок фреймворков и популярных гемов.

Dig Deeper with Pry: Explore Ruby Internals — с недавних пор в Pry можно просматривать источник C-идентификаторов в Ruby.

TruffleRuby Native: Fast Even for Short Scripts — бенчмаркинг компиляции TruffleRuby, MRI и JRuby и других реализаций Ruby.

Goodbye ubygems — в версии Ruby 2.5 был удален файл ubygems.rb, и это не опечатка. Почему так произошло? Детали в статье :)

Translations with Rails and Jekyll — Mike McQuaid рассказывает, как решил проблему перевода сайтов на GitHub pages.

Coming to Terms with the ’Prima Donna Method’ Smell — разбор code smell’а Prima Donna Method в Ruby-коде.

Checking Postgres availability with pure Ruby — проверяем доступность Postgres на чистом Ruby.

Подборка от AppFolio

How Fast is Ruby 2.5.0? — AppFolio провели бенчмарк Ruby 2.5.0 и узнали, насколько новая версия быстрее, чем Ruby 2.4.3.

Benchmarking Ruby’s Heap: malloc, tcmalloc, jemalloc — сравнение производительности разных классов (malloc, tcmalloc, jemalloc), отвечающих за выделение памяти в Ruby.

CRuby Memory Slots: See Them, Tweak Them, Make Them Fast — обзор использования слотов памяти в CRuby.

Для начинающих Ruby-разработчиков

What Ruby taught me — начинающий разработчик Vinicius Brasil делится своими позитивными впечатлениями от изучения Ruby.

Как начать писать на Ruby on Rails: настройка окружения, советы по коду и полезные гемы.

Actionable advice to start learning to code — очень подробная и интересная статья с советами, как начать программировать. Внутри — истории из собственного опыта, списки полезных ресурсов и много мотивации к действию.

Туториалы

Blockchain App with Ruby — криптовалюты дали этому миру такую замечательную вещь, как блокчейн — технологию, которая позволяет строить защищенные децентрализованные приложения. С помощью этого туториала вы тоже сможете построить свое блокчейн-приложение на Ruby.

Testing React.js components with Jest in Rails+Webpacker+Webpack environment — подробный кейс по тестированию компонентов React.js с помощью Jest в среде Rails, Webpacker И Webpack.

Rustic Nil Handling in Ruby — когда в Ruby метод возвращает nil, это может означать несколько сценариев, что может привести к путанице в коде. Разработчик из HoneyBadger — Starr Horne предлагает решить эту проблему так же, как она решена в Rust.

Gzip A File In Ruby — подробный туториал по архивированию .gzip файлов в Ruby с помощью встроенного Zlib модуля.

GraphQL server with Sinatra (Ruby) — Part 1 — первая часть по созданию GraphQL сервера с помощью фреймворка Sinatra.

Speeding up Ruby with Shared Strings — Aaron Patterson рассказывает, как ускорить Ruby с общими строками.

Ruby on Rails: Running Tests with Guard and Docker — автор рассказывает, как оптимизировать запуск тестов с Guard и Docker в Rails-приложении.

Building a Command-Line Interface with Ruby — туториал по созданию command-line интерфейса на Ruby.

Goodbye Sprockets. Welcome Wepbacker 3.0 — простой гайд по переходу с Sprockets на Webpacker 3.0.

How to Separate Features for Different Organizations in a Rails App — в статье демонстрируется сразу три подхода к разделению фичей для разных организаций в SaaS-приложении на Rails.

How to use Query Objects to refactor Rails SQL-queries — в туториале объясняется, как использовать Query Objects для рефакторинга SQL-запросов в Rails-приложении.

Подборка от AppSignal

Syntactic sugar methods in Ruby — как Ruby использует синтаксический сахар для более понятного и читабельного синтаксиса.

Inspecting Data in Ruby — инструкция по дебаггингу с помощью метода puts.

Debugging Exceptions in Rails — дебаггинг исключений в Ruby.

Подборка от Reinteractive

Action Cable for Rails and Angular JS 1.x — туториал по настройке серверной части Action Cable для Rails-приложения и клиентской части Angular JS 1.x.

Wallaby: a newcomer in the admin interface market — Wallaby — альтернатива таким панелям администратора, как RailsAdmin и ActiveAdmin, с возможностью кастомизации. В статье приводится пошаговое руководство по настройке Wallaby.

Creating custom helper methods for the Rails console — туториал по созданию кастомных helper методов для Rails-консоли.

Релизы

Rails

Rails 5.1.5 has been released — в середине февраля вышла новая версия Rails 5.1.5. Детали — в changelogs.

Parallel testing — в версии Rails 6.0.0

New Feature on Rails 5.2: Redis Cache Store — в версии Rails 5.2. появился Redis Cache Store.

Ruby

В Ruby 2.5 добавили метод Hash#slice

Ruby 2.6.0-preview1 Released — долгожданный релиз Ruby 2.6.0-preview1. Из интересного — имплементация JIT и значительные улучшения производительности.

RubyGems 2.7.5 — новый релиз включает в себя исправления ошибок.

Multiple vulnerabilities in RubyGems — обзор уязвимостей в RubyGems и версии, которые подвергаются им.

Sinatra 2.0.1 is out! — а еще вышла новая версия Sinatra, детали — в changelogs.

Посмотреть

Февраль посвящен не только JIT в Ruby 2.6, но и плейлисту с серий видео On Writing Software Well. DHH обещает рассказывать, как создавать качественный софт.

Подборка скринкастов от GoRails

Rails 5.2 — Encrypted Credentials — узнайте, как использовать Encrypted credentials в Rails 5.2 вместо secrets.yml.

Undo Sending Button like GMail — создаем кнопку «Undo», как в GMail для отмены отправки уведомлений.

Building A Hosting Platform in Ruby — строим хостинг-платформу по типу HatchBox на Ruby.

RubyTapas

Two screencasts, two ways to eradicate Ruby nil values — два скринкаста и два разных способа устранить значения nil в Ruby.

Послушать

I added a Rails app to wrap the Ruby logic

Подкасты от RWpod:

Подкасты от The Ruby Rogues

RR 349: The Overnight Failure with Sebastian Sogamoso — подкаст с Sebastian Sogamoso, Ruby-разработчиком из CookPad. Sebastian рассказывает о своих фейлах на проектах и способах побороть страх перед неудачами.

RR 348: Continuous Automation — Chef, InSpec, and Habitat with Nathen Harvey and Nell Shamrell-Harrington — разговор Nathen Harvey и Nell Shamrell-Harrington, которые работают в Chef. Тема подкаста, как всегда, разнообразная — платформа Chef Automate, Chef комьюнити, Continuous automation и многое другое.

MRS 031: Jeremy Evans — ведущие The Ruby Rogues общаются с Jeremy Evans, Ruby-разработчиком с 14+ годами опыта. Тема подкаста — путь Jeremy от C++ до Ruby, сравнение Rails и Sinatra и как Ruby менялся на протяжении этих лет.

Ruby Gems

Facebook-cleaner — скрипт, который удаляет весь старый контент из вашего профиля на Facebook.

Hm? — экспериментальный гем, который предоставляет эффективный, идиоматичный DSL для hash transformations в Ruby.

Random

Sandi Metz — автор книги Practical Object-Oriented Design in Ruby. Теперь все её фанаты могут купить футболку с надписью «What would Sandi Metz do?»

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


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

Похожие статьи:
Всем привет! В августе вышла стабильная версия Rails 5.2.1, а популярный тест-фреймворк RSpec обновился до версии 3.8. Сообщество Ruby...
Український Project Manager Роман Перімов майже 20 років в IT. Напередодні війни він планував релокуватися до США, але свідомо...
Як дізнатися, що кандидат на вакансію дійсно вміє виконувати свою роботу? Не завжди теоретичні знання свідчать про...
Які навички потрібно мати, щоб стати лідом команди? Про це ми поспілкувалися з розробниками, дизайнером, девопсом...
Instagram is a great social media network if you want to market your brand. Apart from letting you showcase products from your Shopify store, using Instagram helps in many ways to promote your business....
Яндекс.Метрика