Ruby/Rails дайджест #11: Hanami v1.1.0, юбилейный митап Ruby Meditation и баг, который случается раз в году
Всем привет! Спешим поделиться последними новостями в нашем дайджесте за октябрь.
Предлагаем ознакомиться с последними обновлениями и функционалом новой версии Hanami v1.1.0, очередной обширной подборкой статей от блога Arkency, а также туториалами по Ruby/Rails. Кроме того, не забудьте послушать содержательное интервью с CEO RubyMotion и узнать, какие события ожидают вас в ноябре.
Почитать
Elm and Rails Sitting in a Tree — подробное описание про интеграцию языка Elm c Rails при помощи гема Webpacker. Также в конце приводятся примеры паттернов, возникших в результате создания проекта.
Ruby on Rails Speed of Development — Fast Software Delivery With RoR — автор рассуждает о скорости разработки продукта при помощи Ruby on Rails и приводит примеры в защиту своих аргументов.
Hosting a Ruby on Rails App — DevOps Solutions Comparison: AWS, Google Cloud Platform, Microsoft Azure, Heroku and Digital Ocean — сравнение хостингов для Ruby on Rails приложений с перечислением положительных и отрицательных сторон каждого провайдера.
Ruby on Rails Refactoring — When Do You Need It and Why? — в статье говорится о ситуациях, при которых целесообразно проводить рефакторинг кода.
How to Verify the Quality of a Ruby on Rails Development Agency — статья о том, как можно дистанционно проверять и контролировать команду Ruby on Rails разработчиков.
Why Ruby app servers break on macOS High Sierra and what can be done about it — статья об ошибках на серверах Ruby-приложений, возникающих в результате апгрейда на macOS High Sierra, а также о плюсах и минусов создания Fork-ов в качестве мер предостережения обсуждаемых ошибок.
Amazing benefits of using Ruby on Rails for your web project — автор говорит о преимуществах использования Ruby on Rails в процессе создания проекта, а также помогает определиться, в каких случаях RoR подходит лучше всего.
Unsafe Object Deserialization Vulnerability in RubyGems — отчет о том, как обнаружили и пофиксили уязвимость в RubyGems.
Lifelong Rubyist makes some Python code 5x Faster — статья об опыте автора по оптимизации скорости разработки на языке Python в сравнении с Ruby.
Цикл статей от BigBinary о версии Ruby 2.5:
- Ruby 2.5 has removed top level constant lookup
- Ruby 2.5 allows rescue/else/ensure inside do/end blocks
Rails 5.2 adds expiry option for signed and encrypted cookies and adds relative expiry time — туториал о том, как в версии Ruby 5.2 можно установить срок прекращения действия для выбранных cookies.
A Quick Guide to Rails System Tests in RSpec — RSpec не теряет своей популярности. Встречайте новый гайд по тестированию Rails-приложений с RSpec.
Google Pixel vs. iPhone 7 or how programming languages are being chosen in real life — размышление о разнице между фреймворками Django и Ruby on Rails в контексте выбора одного для разработки продукта. В статье приводятся интересные примеры о том, как личный опыт может повлиять на данное решение.
RSpec: difference between mocks and stubs — автор объясняет разницу между объектами mock и stub в фреймворке RSpec.
Receiving and Parsing Email in Rails 5 — туториал по интеграции сервиса Mailgun для отправки outbound emails в SaaS-приложениях для версии Ruby 5.1.
Explicit request params binding in Ruby web apps — автор рассуждает о том, какие проблемы могут возникать в результате упрощения некоторых параметров во время работы с Ruby, и как их следует избегать.
7 Gems Which Will Make Your Rails Code Look Awesome — подборка гемов для улучшения построения архитектуры Ruby on Rails приложений.
Rescue specific errors. Avoid rescuing StandardError. Don’t rescue Exception. — туториал о правильном использовании rescue во встроенных классах ошибок.
Exploring Functional Programming with Ruby — автор сопоставляет функциональное программирование с объектно-ориентированным программированием и рассказывает, как можно научиться функциональному программирования, не отходя от языка Ruby.
7 Little-Known Ruby Methods To Help You Write Better Code — гайд по Ruby-методам для усовершенствования вашего кода.
Extracting a class from a method — пример рефакторинга с помощью извлечения класса из метода.
Improved stacktrace display in Ruby 2.5 — обзор об улучшении отображения stacktrace в версии Ruby 2.5.
Implementing Early Hints with Puma and Rails — реализация нового HTTP статус кода Early Hints в Puma и Rails.
Fastest way to profile a method in Ruby — туториал о том, как наиболее быстрым образом профилировать код в Ruby.
Подборка полезных статей от Arkency за октябрь:
- Could we drop Symbols from Ruby? — статья-рассуждение на тему, насколько целесообразно было бы избавиться от символов в Ruby.
- Two ways for testing preloading/eager-loading of ActiveRecord associations in Rails — автор рассказывает о своем опыте с двумя разными вариантами тестирования загрузки ассоциаций в Ruby on Rails.
- Make your Ruby code more modular and functional with polymorphic aggregate classes — автор делится опытом использования DDD, CQRS и Event Sourcing вместо «The Rails Way».
- Relative Testing vs Absolute Testing — сравнение absolute и relative подходов тестирования, а также рассматриваются ситуации, в которых использование того или иного вида тестирования является более целесообразными.
- Application Services — 10 common doubts answered — ответы на 10 самых распространенных заблуждений при
DDD-разработке. - A bug that only appears once a year — когда переводят часы на зимнее время, в сутках «появляется» 25 часов. Это может стать причиной бага, который заметил автор статьи. Решение проблемы прилагается.
- Make your JSON API tests clean with linter — туториал по оптимизации JSON API тестов, делая их более компактными и ориентированными на бизнес-цели.
Подборка статей от Engine Yard за октябрь:
- Running Rails in AWS Elastic Beanstalk — туториал поможет вам с запуском Rails на AWS Elastic Beanstalk.
- Dependency Management Guidelines for Rails Teams — отличное руководство по управлению зависимостями для Rails-команд, с примерами конкретных проблем и вариантами их решений.
- Load Testing Ruby Apps for Black Friday — узнайте, как правильно провести нагрузочное тестирование Rails-приложений в преддверии увеличения трафика во время Black Friday.
- Disaster Recovery Plan for Rails Apps — продолжая тему Black Friday, читайте статью о подготовительных мерах для Rails-приложений, в случае если сервера AWS «упадут» в результате увеличения трафика во время Black Friday.
- Checklist For Migrating Your Rails Application — статья о том, как наилучшим образом мигрировать ваше Rails-приложение с одного хостинга на другой.
Послушать
Подборка подкастов от The Ruby Rogues с известными программистами за октябрь:
- RR 330: Functions vs Methods with Devon Estes — ведущие подкаста и гость этого выпуска Devon Estes обсуждают: функции против методов, object orientation и functional программирование, объединение Elixir и Ruby, service objects спешат на помощь, и многое другое.
- RR 331: 30 days to Elixir then Crystal and back again to Ruby with Fabio Akita — гость выпуска Fabio Akita говорит о том, как разработчикам стоит подходить к изучению новых языков, в частности Crystal и Elixir.
- RR 332: Exploring Connections Between Your Apps and the Web with Justin Weiss — гость этого выпуска Justin Weiss рассказывает о своей презентации для Ruby Dev Summit, в которой идет речь о связях между мобильными и веб приложениями.
- MRS 23: Adam Cuppy — беседа с гостем выпуска Adam Cuppy о его опыте смены карьеры актера на Ruby-программиста.
- RR 333: RubyMotion and the Aesthetic of Ruby with Amir Rajan — в этом выпуске Amir Rajan, CEO RubyMotion — платформы для создания кросс-платформенных приложений под iOS и Android на Ruby, рассказывает о принципах работы своей компании.
- RR 334: Is Elixir the Next Ruby? with Hal Fulton — ведущие подкаста и гость выпуска Hal Fulton, который был одним из первых разработчиков, освоивших язык Ruby, рассуждают, каковы шансы у Elixir заменить Ruby.
Продолжение пятого сезона подкастов от RWPod:
- 39 выпуск 05 сезона. Refinery CMS 4.0.0, Brakeman 4.0, React v16.0, Nullalign, Draggable, Lozad.js и прочее
- 40 выпуск 05 сезона. On Bundler 2.0 compatibility, Ecto vs ActiveRecord, the road to Ember 3.0, PostgreSQL 10, CKEditor 5 и прочее
- 41 выпуск 05 сезона. Ruby 2.5.0-preview1, Reusable UI components in Rails, React Sight, ProseMirror и прочее
- 42 выпуск 05 сезона. ROM 4.0.0, Next.js 4, The melting pot of JavaScript, InvoicePrinter, Factory_bot и прочее
- 43 выпуск 05 сезона. Hanami v1.1.0, Scaling the GitLab database, Modern JavaScript Explained For Dinosaurs, React-mosaic, HEML и прочее
Новые подкасты от The Bike Shed в этом месяце:
- 126: Speaking of Compilers... — в этом выпуске обсуждается гем contracts.ruby, после того как ведущий попробовал его в действии.
- 127: Bike Shed: Discovery — ведущие говорят о мелких проблемах в системе Bundler в связи с предстоящим релизом её новой версии.
- 128: And Now for My Next Trick! — выпуск о повседневных реалиях работы программистов, включая проектный менеджмент, рефакторинг, workflow и прочее.
Посмотреть
Let’s build a blockchain! — A mini-cryptocurrency in Ruby — видеотуториал о том, как построить Blockchain на Ruby.
Новая подборка скринкастов от Drifting Ruby в этом месяце:
- Episode #100 Basic Testing Introduction in Rails — в видео рассматриваются различные виды тестов в версии Rails 5.1 при помощи MiniTest и Capybara.
- Episode #101 — Testing with RSpec — туториал по созданию тестов для приложений с помощью RSpec.
- Episode #102 — Feature Testing with Capybara — туториал по функциональному тестированию с Capybara.
- Episode #103 — Sample Data with Factory Bot and Faker — скринкаст по использованию гемов Faker для генерации фейковых данных и Factory Bot для записи данных в модели.
Подборка скринкастов от Go Rails в октябре:
- Using the Trix Editor plus File Upload Attachments — скринкаст о том, как использовать web текстовый редактор Trix для заливки файлов.
- Making GeoSearch smooth with AJAX — в данном скринкасте обсуждаются темы: Maps, Geolocation, и GeoSearch.
- Administrate Custom Fields and the Trix Editor — скринкаст об использовании WYSIWYG-редактора Trix в связке с гемом для админпанели Administrate.
Релизы и библиотеки
Релизы
ROM 4.0.0 released — состоялся релиз ROM версии 4.0.0.
Вышла новая версия Hanami, приглашаем ознакомиться с новыми фичами: Announcing Hanami v1.1.0
Ruby 2.5.0-preview1 Released — в октябре вышел preview-релиз Ruby 2.5.0.
Rails Testing Grader: Compare Your Test Suite to the Industry — релиз нового инструмента Rails Testing Grader, при помощи которого можно сравнить состояние вашего Test Suite с другими проектами.
Библиотеки
Invoice Printer 1.0 — гем InvoicePrinter 1.0 позволяет генерировать инвойсы в PDF формате.
Книги
Agile Web Development with Rails 5.1 — открыт предзаказ на книгу «Agile Web Development with rails 5.1». Книгу можно предзаказать на Amazon и PragProg.
Learn Ruby In 7 Days — в этом месяце вышла книга «Learn Ruby in 7 Days». Книгу можно заказать на Amazon и Lulu.
События
RUBY Meditation #19 — митап Ruby Meditation #19 будет проведен 25 ноября в Киеве. Билеты уже в продаже.
RUBY Meditation — 20th Anniversary — 2 декабря в Киеве пройдет юбилейный митап Ruby Meditation #20. Новости по организации мероприятия можно отслеживать на странице в Facebook. Также уже есть возможность приобрести билеты.
← Предыдущий выпуск: Ruby дайджест #10