×Закрыть

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 в Черкасском государственном технологическом университете.


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


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

LinkedIn

1 комментарий

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

Огромное спасибо за чудесный дайджест !

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