Ruby/Rails дайджест #10: подкаст с DHH, новый блог о разработке, выступления на RubyKaigi

Привет! Сентябрь оказался богатым на события в мире Ruby/Ruby on Rails, поэтому спешим поделиться с вами последними новостями.

В десятом юбилейном дайджесте встречайте множественные рекомендации и советы по улучшению производительности работы на Ruby/Rails, подкаст от Basecamp с участием David Heinemeier Hansson, новый блог о разработке, видео выступлений с конференции RubyKaigi и важные события в октябре.

Почитать

Understanding the secret_key_base in Ruby on Rails — secret_key_base — отличный способ сократить нагруженность конфигураций. В туториале приводятся примеры использования secret_key_base и говорится о ценности этой конфигурации для приложений Ruby on Rails.

Code simplicity — Command pattern — в этом туториале вы найдете информацию, как применять шаблон проектирования ‘Command’ на примере сценария покупки товара в online-магазине.

Superfast CSV imports using PostgreSQL’s COPY command — рекомендации, как максимально быстро импортировать CSV, используя команду PostgreSQL’s COPY.

Серия из двух статей с подробным объяснением моделей параллелизма (concurrency models) в Ruby:

  • Introduction to Concurrency Models with Ruby. Part I — в первой части автор рассматривает различия между процессами, потоки, что такое GIL, EventMachine и Fibers в Ruby.
  • Introduction to Concurrency Models with Ruby. Part II — вторая часть посвящена более продвинутым видам моделей параллелизма, таким как Actors, передаче последовательных процессов, Software Transactional Memory и Guilds — новой модели параллелизма, которая может применяться в Ruby 3.

Teaching a Neural Network to play a game using Q-learning — в предыдущем выпуске нашего дайджеста мы предлагали прочесть статью от Practical Artificial Intelligence о том, как научить искусственный интеллект играть в простую игру с использованием Q-learning. В этом выпуске предлагаем вам узнать, как с помощью нейронной сети и Q-Learning создать искусственный интеллект, который смог бы играть в компьютерную игру.

Using the scikit-learn machine learning library in Ruby using PyCall — из этого туториала вы узнаете, как использовать набор простых и эффективных инструментов для машинного обучения и искусственного интеллекта Scikit-learn. Scikit-learn написан на Python, но Ruby разработчики могут с ним взаимодействовать через PyCall.

How we made our rspec test suite to run 2x faster — скорость выполнения автотестов играет важную роль в разработке программного обеспечения. Из примера в этой статье вы узнаете, как вдвое ускорить выполнение RSpec.

Verify user phone numbers in Ruby on Rails with the Authy Phone Verification API — полезный туториал о том, как проверить достоверность номера телефона пользователя в приложении на Rails 5 с помощью Authy Phone Verification API.

Подборка полезных статей от Engine Yard за сентябрь:

  • Ruby on Rails Security 17-Item Checklist — полезный чеклист проверки безопасности приложения для Rails разработчиков.
  • AWS Image Storage with S3 and EFS: A Rails How To — туториал, как настроить сервисы хранения фотографий Amazon S3 и Amazon Elastic File System для приложения на Rails.
  • Customer Stories: Resolving a Deploy Issue Due to Load Error — кейс, в котором описывается пример успешного решения проблемы ошибки загрузки во время развертывания приложения.
  • Using Services to Keep Your Rails Controllers Clean and DRY — сложная система контроллеров, которые трудно менять, ‒ это не то, что хочется обнаружить в Rails-приложении. Чтобы избежать этого, стоит обратить внимание на подсказки в статье, как использовать сервисы для организации контроллеров.
  • Improving Rails App Performance with Database Refactoring & Caching — улучшаем производительность Rails-приложения, рефакторим базу данных и подключаем кэширование.
  • 7 Completely Legal Rails Performance-Enhancing Techniques — советы по улучшению скорости времени отклика и пропускной способности Rails-приложения.
  • Running Rails on AWS: Know Your Options — в этой статье вы найдете описания четырех вариантов запуска Rails на AWS, которые помогут вам решить, какой из них лучше подходит для вашего приложения.

Rails: make sure you have proper DB indexes for your model’s unique validations — статья- напоминание о том, что надо не забывать про индексы базы данных при создании собственных валидаторов.

That time I wrote a query with chained ruby methods weighing in at 41 lines and 2844 chars — что делать, если получился SQL-запрос на 41 строку? Автор статьи делится опытом, как рефакторить такие запросы.

How to include Rails Associated Model Data in React components — в этом туториале вы найдете подсказки, как получить доступ к связанным данным модели из вашего компонента React на Rails.

DEALING WITH RUBY DEPENDENCY CONFLICTS — рекомендации, как избежать конфликтов зависимостей в Ruby и какие для этого существуют инструменты.

Ruby: pass by value or pass by reference? — существуют спорные взгляды на то, как в Ruby передаются параметры — по ссылке или по значению. Автор блога Rubyblog.pro предлагает разобраться, как это работает.

Improving spec speed in a huge, old Rails app — по мере того, как растет проект, все больше времени уходит на выполнение continuous integration, и скорость spec становится одной из проблем. Из этого кейса вы узнаете, как улучшить скорость выполнения тестов в масштабном приложении на Rails.

Rails Best Practice — Persisting Addresses in PostgreSQL — решение, которое предлагает последовательный, эффективный и надежный способ хранения и извлечения сложных типов данных из базы данных SQL.

A Puzzle About Ruby Constants — константы языка Ruby иногда могут озадачить даже опытных разработчиков. В этом туториале найдутся советы, как разобраться с логикой Ruby для определения константы.

Breaking Up the Behemoth — очень часто многие приложения со временем обрастают большими, сложными и постоянно изменяющимися классами. В этой статье вы найдете советы, как лучше избежать появления габаритного кода.

DateTime#to_time and Time#to_time preserves receiver’s timezone offset info in Ruby 2.4 — методы DateTime#to_time and Time#to_time могут быть использованы для возврата объекта Time. В туториале вы найдете отличия работы с этими методами в версиях Ruby 2.3 и Ruby 2.4.

3 ways that will make you React with Rails developer — советы и полезные ресурсы, как лучше инициализировать React.js в приложение на Rails.

Debugging Why Your Specs Have Slowed Down — если выполнение spec-тестов занимает, на ваш взгляд, вечность, советуем взять на вооружение эти подсказки по определению причин замедлений и методы предотвращения их в будущем.

В сентябре увидел свет новый блог от Ruby/Rails разработчика Paul Martensen и уже успел пополниться несколькими статьями:

  • Off the Rails! Part 1. — в своей первой статье автор блога пытается уйти от Ruby on Rails и предлагает альтернативный способ написать JSON-API для приложения.
  • Off the Rails! Part 2. — вторая часть туториала, как создать приложение без использования Rais. Автор предлагает расширить структуру приложения, добавив Bundler, Rake, Sequel и базу данных Postgres.
  • Refactoring CanCan(Can) Abilities — если в системе вашего приложения присутствует сложный набор правил авторизации, эти подсказки помогут сделать их более управляемыми.
  • A way to split up big merge- or pull-requests — в статье описывается способ, как упростить один большой Pull-Request на несколько небольших. Такая практика помогает команде разработчиков делать code review быстрее и качественнее.

Серия статей на тему применения API-интерфейса GraphQL в Rails:

  • How to Implement a GraphQL API in Rails — туториал, как реализовать API-интерфейс GraphQL в Rails.
  • GraphQL and Performance in Rails — в туториале рассматриваются три способа избежать проблем с производительностью с помощью GraphQL в приложении на Rails, а также инструмент, который помогает контролировать, какие запросы выполняются вразрез с API-интерфейсом GraphQL.

Подборка статей о разработке от Arkency за сентябрь:

For Software Engineers — Scalability Introduction — в этой статье вы найдете полезную информацию о масштабируемости и как ее достичь при разработке программного обеспечения.

Послушать

Rework — 03 — Pick A Fight (on Twitter) — подкаст от Basecamp с участием CTO Basecamp David Heinemeier Hansson, где David расскажет об искусстве спорить с людьми в интернете и непосредственно в Twitter.

Подкасты от The Ruby Rogues продолжают радовать беседами с известными программистами:

Свежие подкасты от The Bike Shed в сентябре:

  • The Bike Shed — 122: Name That Smell — в этом выпуске авторы подкаста ведут беседу о работе над новым проектом, о тестах связанных с внешними сервисами и ошибке точности, которая встречается в ActiveRecord.
  • The Bike Shed — 123: Too Many Parameters — в этом эпизоде авторы подкаста обсуждают проблемы, возникающие при повторном использовании кода.
  • The Bike Shed — 124: Nope. Nope. Nope. Nope. — эпизод посвящен процессу подачи заявки на участие в конференциях Ruby, анализу кода и многом другом.
  • The Bike Shed — 125: Less Bad Than Expected — обсуждение преимуществ и недостатков FactoryGirl и уязвимостях данных Equifax.

Пятый сезон подкастов на RWpod продолжается, и за сентябрь собралось немало выпусков:

Посмотреть

The 11-minute guide to building and launching an online store with Rails, Stripe Checkout and Heroku — короткий гайд по созданию интернет-магазина на Rails. Из видео вы узнаете, как настроить платежи для магазина через Stripe checkout.js и развернуть его на Heroku.

Подборка скринкастов от GO RAILS в сентябре:

  • Faster Rails boot times with Bootsnap — из этого скринкаста вы узнаете, как Bootsnap ускоряет время загрузки приложения на Ruby и Ruby on Rails.
  • Geo-spatial Search with Geocoder and Google Maps — в этом скринкасте вы узнаете, как повторить функцию определения геолокации, как у приложений Yelp и Airbnb с помощью гема Geocoder.
  • Geo-spatial Search with Searchkick and ElasticSearch — в этом эпизоде вы научитесь индексировать и находить модели по геолокации с помощью Searchkick и Elasticsearch.

Подборка скринкаcтов от Drifting Ruby за сентябрь:

RubyKaigi 2017 — International Conference — в сентябре в Японии прошла ежегодная конференция RubyKaigi, на которой выступали как известные разработчики из Японии, так и западные специалисты. В этой подборке предлагаем выступления на английском:

Релизы и библиотеки

Библиотеки

Zen Rails Base Application — шаблон для новых Rails приложений, сократить время на создание нового проекта.

ruby-vips — гем, который, обеспечивает привязку Ruby к библиотеке обработки изображений libvips.

Slack Neuralyzer — гем, для массового удаления сообщений и файлов на Slack-каналах.

Gemfile’s new clothes — вскоре ожидается релиз Bundler 2.0 — менеджера для управления гемами. Рекомендуем узнать, чего ожидать от новой версии, и быть в курсе всех изменений задолго до релиза. Также в статье указывается, какими опциями уже сейчас можно пользоваться в последних версиях.

Say Hi to Delivery Boy! — библиотека Racecar обеспечивает простой и интуитивно понятный способ создания и настройки потребителей (consumers) в Kafka, и может легко интегрироваться с приложением Rails.

BRAKEMAN: Rails Security Scanner — сканер безопасности Brakeman обнаруживает уязвимости в приложениях Rails с помощью статического анализа. И, что очень удобно, после сканирования он создает отчет обо всех проблемах безопасности, которые он идентифицировал.

Awesome Data Science with Ruby — список туториалов, библиотек и разнообразных источников о различных приложениях Data Science с использованием языка программирования Ruby.

Релизы

JRuby 9.1.13.0 Released — в сентябре вышла новая версия JRuby.

Welcome Release of Webpacker 3.0 — новости по недавнему релизу гема Webpacker.

Rubies 2.2.8, 2.3.5, and 2.4.2 are now available — в сентябре вышли обновления на Ruby. Версии 2.2.8, 2.3.5 и 2.4.2.

Rails 5.1.4 and 5.0.6 released — 7 сентября вышли обновленные версии Ruby on Rails. Полный список изменений можно посмотреть на GitHub.

Rails 4.2.10 released — также в сентябре обновилась версия Rails 4.2. Как заявляют разработчики, эта версия больше не будет поддерживаться, за исключением серьезных исправлений безопасности.

Karafka (Ruby + Kafka) framework 1.0.0 Release Notes — вышел релиз Karafka 1.0 — это относительно свежий фреймворк, авторам которого удалось реализовать множество новых функций и исправить ошибки. Если вы хотите как можно быстрее познакомиться с фреймворком и начать с ним работать, предлагаем вам эти примечания к релизу.

Книги

Рекомендуемые

Effective Testing with RSpec 3 has been released! — в этом месяце вышла книга о тестировании «Effective Testing with RSpec 3: Build Ruby Apps with Confidence». Заказать можно на Amazon и PragProg.

Релизы

The Unhappy Path. Failure Management Patterns in Ruby and Rails — книга от Benjamin Roth «The Unhappy Path. Failure Management Patterns in Ruby and Rails» еще в процессе написания, но предзаказ уже открыт.

События

International Ruby Conferences Fall 2017 — список международных Ruby-конференций, которые охватываю земной шар от Японии до Бразилии этой осенью.

Coderetreat — 6 октября в Киеве Ruby Meditation устраивает тренинг «Coderetreat» с Сергеем Сержиенко — представителем минского Ruby-сообщества.

RUBY Meditation #18 — 7 октября в Киеве будет проходить митап Ruby Meditation #18. Полный список спикеров и расписание пока ожидается, но уже можно регистрироваться.

SphereCon — Ruby and Go Conference — 28 октября в Киеве пройдет конференция по технологиям Ruby, Go и Front-End. Вход свободный, но не забудьте зарегистрироваться.

RUBY Meditation #19 — митап Ruby Meditation #19 также проводится в Киеве 4 ноября. Билеты уже в продаже.

RUBY Meditation — 20th Anniversary — 2 декабря в Киеве пройдет юбилейный митап Ruby Meditation #20. Новости по организации мероприятия можно отслеживать на странице в Facebook. Также уже есть возможность приобрести билеты.

Курсы

Курсы от Codaline — с 16 сентября по 1 октября 2017 объявлен набор на третий сезон курсов от Codaline, где одним из направлений будет язык программирования Ruby. Курсы будут проводиться в режиме offline в Черкасском государственном технологическом университете.


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


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

Похожие статьи:
Від редакції: у рубриці DOU Books спеціалісти розповідають про 5 своїх улюблених книжок — ті, які змінюють світогляд та корисні...
Рік тому Україна й Естонія оголосили про спільну розробку застосунку mRiik на базі «Дії». Нині була готова перша його версія,...
Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинён вред. Робот должен...
Фасилітація — одна з моїх улюблених тем. Я займаюсь нею професійно 7 років, відколи почала навчатись...
Цього разу DOU Ревизор завітав до Intellias — української аутсорсингової компанії, яка була заснована...
Яндекс.Метрика