×Закрыть

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?»

Касательно тем/материалов/ивентов, которые стоит добавить в следующий выпуск дайджеста, пишите в комментариях или на volodymyr.vorobiov@rubygarage.org. Спасибо за помощь в подготовке дайджеста команде RubyGarage.


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

LinkedIn

5 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Спасибо большое за обзор !

Спасибо за интересные линки!

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

Sandi Metz це жінка :)

ох, як незручно вийшло :), приношу свої вибачення Санді і всім читачам

Спасибо, отличная подборка.

Подписаться на комментарии