Ruby/Rails дайджест #9: обновления RoR, полезные скринкасты от GoRails и анонс масштабных Ruby конференций

Всем привет! Рады представить вам Ruby/Rails дайджест за август.

В последний месяц лета предлагаем вам прочесть советы по улучшению работы Ruby/Ruby on Rails и увеличению скорости выполнения RSpec тестов, обратить внимание на подборку статей блога Arkency, посмотреть новые релизы и библиотеки, а также узнать о различных meetup’ах и конференциях, которые активно будут проходить этой осенью.

Почитать

Faster Rails: Eliminating N+1 queries — сталкиваетесь с проблемой медленной производительности RoR, когда в приложении растет количество запросов? В статье найдутся советы, как разобраться и поладить с N + 1 запросами.

Tips on Treating Flakiness in your Rails Test Suite — flaky тесты — это досадная реальность разработки программного обеспечения. В статье собран список полезных советов для решения этой проблемы.

The — profile hammer and RSpec — ищете причину, из-за которой снижается скорость выполнения RSpec тестов в Rails приложении? Иногда ответ кроется в очень простых решениях. Где искать и как устранить проблему, вы узнаете в этой подсказке.

How I got RSpec to boot 50 times faster — решение, как в 50 раз увеличить скорость выполнения RSpec тестов и сэкономить время рабочего цикла.

How To Write Bug Report The Right Way — полезный гайдлайн, как писать отчеты об ошибках, чтобы их было легче устранять.

Why it is just lazy to bad-mouth Ruby on Rails — предрассудки в сообществах разработчиков — частое явление. Пока одни настаивают на том, что Ruby on Rails перестает быть популярным, автор статьи доказывает, что идея на счет смерти фреймворка сильно преувеличена. Предлагаем пройтись по истории RoR и узнать, на каком этапе развития находится фреймворк сейчас.

Managing localization in Rails — если ваше приложение должно поддерживать несколько языков, эти подсказки послужат полезным темплейтом, как настроить процесс локализации для больших приложений.

Exercises for Programmers (in Rails): Say Hello — книга «Exercises for Programmers» полезна, даже если вы только начинаете изучать программирование. На личном примере автор показывает выполнение базовых упражнений из книги в своем приложении Rails.

4 Ways to Secure Your Authentication System in Rails — как лучше обезопасить систему аутентификации в Rails? Какие для этого есть способы? После прочтения статьи, в которой предлагается углубленное понимание безопасности и аутентификации в целом, выбор сделать будет проще.

Advanced Enumeration with Ruby — объяснение использования методов Enumerable в Ruby.

Elixir Envy ᐅ Ruby — pipe operator помогает коду обладать большей ясностью, большей модулярностью и позволяет проще работать с базой кода. И это не только прерогатива языка Elixir. В статье перечисляются способы, как можно применять pipe operator в языке Ruby.

Ruby State Machine — AASM Tutorial with Sequel, SQLite, Rake and RSpec — если вы сталкиваетесь с проблемой управления логикой изменения состояния записи, (например, управление заказами в магазине), на помощь придет AASM — машина состояний. В этом туториале вы найдете решение, как объединить AASM с Sequel и как создать микро приложение Ruby с помощью Rake, DotEnv, SQLite и RSpec.

A Deep Dive into CSRF Protection in Rails — а вы знали, что Ruby on Rails может защищать от опаснейшей атаки Cross-Site Request Forgery? В статье найдется все, что необходимо знать, чтобы у хакеров не было возможности выполнить действия от имени других, зарегистрированных посетителей на вашем сайте.

A look at how Ruby interprets your code — в статье объясняется, как язык Ruby интерпретирует наш код и как мы можем использовать это знание в наших интересах.

Is WEBrick Webscale? — если web-сервер WEBrick считается самым медленным, стоит ли им пользоваться? В статье сравнивается WEBrick с одним из самых быстрых web-серверов NGINX, чтобы выяснить насколько быстро он масштабируется.

A Crash Course in Analyzing Memory Usage in Ruby — исходя из собственного кейса, автор предлагает рассмотреть, как можно использовать память в Ruby.

Using Ruby and Amazon SQS FIFO Queues — Amazon SQS — это надежный и высоко масштабируемый полностью управляемый сервис очередей. В статье описывается, как с его помощью возможна обработка сообщений всего один раз и в том порядке, в котором они отправлены.

Why Hanami will never unseat Rails — статья о динамике web-экосистемы Ruby on Rails и объяснение, почему не стоит ее сравнивать с Hanami.

Creating a Ruby DSL: A Guide to Advanced Metaprogramming — в этой статье вы узнаете, какие бывают предметно-ориентированные языки (DSL), когда они должны использоваться, и как вы можете создать свой собственный DSL в Ruby с использованием передовых методов метапрограммирования.

TestProf: a good doctor for slow Ruby tests — если вы все еще задаетесь вопросом о важности производительности выполнения тестов, обязательно прочитайте эту статью. В ней вы узнаете занимательную статистику выполнения тестов. А также вы познакомитесь с мета-гемом TestProf — набором инструментов для Ruby тестов.

Rails Techniques: Using Polymorphic Associations — туториал, который поможет улучшить понимание о полиморфных отношениях. В Ruby on Rails они представляют собой отношения Active Record, которые могут устанавливать связь одной модели с несколькими другими моделями.

Подборка статей за август от Arkency:

  • When DDD clicked for me — история, как автору удалось понять концепции проблемно-ориентированного проектирования и применить их в своих проектах Rails.
  • My first 10 minutes with Eventide — в статье автор описывает свое знакомство с Eventide — автономными сервисами event-source, которые являются инструментарием для Ruby с поддержкой Event Store и Postgres.
  • My fruitless, previous attempts at not losing history of changes in Rails apps — кейс, как не потерять историю изменений в Rails-приложениях.
  • That one time I used recursion to solve a problem — кейс о том, как для event-платформы с помощью рекурсивной функции реализовать алгоритм, который планировал бы напоминания постепенно реже с момента покупки до даты события, и аналогично в другом направлении.
  • What I learned from reading spreadsheet_architect code — в этой статье автор разбирает, как работает код гема spreadsheet_architect.
  • The === (case equality) operator in Ruby — туториал на тему модуля Enumerable в Ruby, в котором рассматриваются самые популярные API и некоторые менее популярные, но очень полезные.

Batching — A powerful way to solve N+1 queries every Rubyist should know — в статье описывается метод, с помощью которого можно избежать запросов N + 1. Также вы узнаете о существующих проверенных временем инструментах, таких как Haskell Haxl и JavaScript DataLoader, и о том, как подобные подходы могут использоваться в любой программе Ruby.

Integrating Ruby on Rails Static Analysis with Codeship — инструменты статического анализа — это программы, которые определяют правильность и достоверность кода без его выполнения. В этой статье описывается пример использования статического анализа в проекте на Ruby on Rails.

Fabrication vs FactoryGirl — сравнение библиотек Fabrication и FactoryGirl, которые позволяют генерировать тестовые данные с помощью простого синтаксиса.

Writing Slack Command APIs in Ruby — серия туториалов, как настроить новую команду в мессенджере Slack с использованием Ruby и Heroku в качестве backend-сервиса. По прохождению туториалов вы сможете написать свой собственный API и отправлять прямые сообщения пользователям в Slack.

Riffing on `interpose` implementations in Ruby — туториал о выполнении функции ‘interpose’ в Ruby on Rails.

Using Gemstash for Private Gem Hosting — гайд, который подробно расскажет, как настроить частный сервер Gemstash, работающий через TCP или SSL, который вы можете использовать для хостинга своих гемов или их лицензирования для других пользователей.

Unsupervised learning using k-means clustering in Ruby — алгоритм кластеризации k-mean — это алгоритм, который используется для деления немаркированных данных на ряд кластеров связанных данных. Он используется для таких задач, как сегментация рынка, анализ социальных сетей, компьютерный кластерный анализ и анализ астрономических данных. В статье представлено решение проблемы безконтрольной кластеризации в Ruby, с помощью гема kmeans-clusterer.

Teaching an AI to play a simple game using Q-learning — туториал, как научить компьютер овладеть простой видеоигрой, используя алгоритм обучения q-learning. Алгоритм выполняется с нуля на Ruby, без использования гемов.

Make unit tests great again — Integrate Jasmine into Rails — Jasmine — это фреймворк для написания тестов для кода Javascript в стиле Behavior Driven Development (BDD). В этой статье вы узнаете, как интегрировать Jasmine в существующее приложение Rails, и как писать чистые и красивые модульные тесты.

Managing threads with Queue and SizedQueue — чтобы приложения одновременно выполняли несколько операций быстро, мы можем использовать потоки в Ruby. Узнавайте в статье, как настроить потоки с помощью классов Queue and SizedQueue.

A Quick Analysis of How Sinatra Works — Sinatra — это альтернатива популярным фреймворкам на Ruby. В туториале вы узнаете, как Sinatra инициализируется, как он обрабатывает запрос и выполняет различные шаги, пока не будет получен ответ.

Practical Linked List in Ruby — туториал на тему создания связанных списков (linked lists).

Adding Token Based Authorization to a Rails API with Devise Token Auth — автор учит, как реализовать аутентификацию в простом Rails API приложении с помощью гема Devise Token Auth.

Factories of Fixtures? Give Me Both! — интересно исследование на тему одновременного использования фабрик (Factory Girl) и фейкеров (ffaker) для того, чтобы избежать массивных структур данных.

Five Ruby Methods You Should Be Using — в Ruby, как и в других языках программирования, есть различные способы решения одной и той же задачи. Автор статьи рассказывает о пяти must-have методов в Ruby, которые помогают решать задачи более эффективно.

Using Rails 5 Action Cable and RethinkDB to Build a Creative WebSocket App — узнайте, как построить WebSocket-приложение, используя Action Cable в Rails 5. RethinkDB поможет избежать использования отдельного сервиса вроде Redis.

Why I do not use strong parameters in Rails — strong parameters, хоть и были частью улучшений в Rails 4, все равно являются источником проблем для разработчиков. В статье говорится о том, как не использовать strong params и при этом оставаться ответственным разработчиком.

ActiveRecord’s queries tricks — 5 уловок для запросов ActiveRecord.

Integrating a Third Party API with Rails 5 — быстрый и простой пример того, как интегрировать API сторонних производителей в ваше Rails 5 приложение.

How I lost 17.000 GitHub Auth Tokens in One Night — даже у опытных разработчиков случаются epic fails: история от Richard Schneeman о потере authentication token’ов и попытке их восстановить.

Random

Results of the Code Quality Tools survey — сравните популярные инструменты для определения и улучшения качества кода, которые используются разработчиками чаще всего.

Coder Frozen in 2009 Awakens to Find Frontend Development not Awful — Richard Schneeman, основатель KEEP RUBY WEIRD, делится впечатлениями о том, как изменилась frontend разработка с тех пор, как он перестал ею заниматься, и рассказывает о некоторых недавних изменениях в инструментах и API.

The Longest Email I Ever Sent (Programmatically) — если ваш сайт поддерживает сервис рассылки писем, не поленитесь узнать, какая ошибка в фоновой задаче может повлиять на отправку огромных писем клиентам. Узнайте, как автор нашел проблему и устранил ее основные причины.

Ruby Tests Profiling Toolbox — полезная подборка различных инструментов для анализа производительности комплектов тестов (test suites).

Multiple Vulnerabilities in RubyGems — новости с официального сайта ruby-lang: отчет по уязвимостям в RubyGems и их решение.

Послушать

Подкасты «My Ruby Story» от Ruby Rogue познакомят нас с разработчиками, которые расскажут, как попали в мир Ruby/Ruby on Rails, о своем вкладе в сообщество Ruby и о том, как они изучают новые технологии:

Подкасты Ruby Rogue о новостях мира Ruby/Ruby on Rails за август:

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

Посмотреть

#92 Restricting Access by IP Address — скринкаст объясняет, как ограничить доступ к вашем Rails-приложению или его части через IP адрес.

#93 Recurring Events with ice_cube — в очередном скринкасте от DriftingRuby идет речь о том, как библиотека ice_cube помогает справляться с повторяющимися задачами.

Facebook API and Refreshing Auth Tokens with Koala — подробный скринкаст об использовании Facebook API и обновлении токенов аутентификации с гемом Koala.

Geolocation and Search with Geocoder — скринкаст от Gorails по определению географического положения с гемом geocoder и поиску по базе данных через локацию.

Login with Multiple OAuth Providers using Omniauth — узнайте, как дать возможность вашим пользователям одновременно логиниться с помощью множественных OAuth-провайдеров, включая Twitter, Facebook, GitHub и Google.

Testing Emails in Development with Mailcatcher — если вы ищете альтернативу гему letter_opener, посмотрите скринкаст про отправку email’ов на локальный SMTP сервер Mailcatcher.

How I use Environment Variables with Rails secrets — скринкаст раскрывает секреты работы с environment variables и решение распространенных проблем, связанных с ними.

#67 ActiveJob in Rails 5.1 — смотрите видео про основы использования ActiveJob и Resque в Rails 5.1.

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

Библиотеки

kNN Classifier written in Ruby — свежая библиотека ruby-knn предоставляет kNN-классификатор, написанный на Ruby.

Fine-ants-app — небольшое Rails-приложение на основе гема ants-app для агрегации персональных данных.

Golden Cobra — Golden Cobra — open-source CMS на Ruby on Rails. Проект отлично документирован на GitHub, поэтому разобраться с Golden Cobra не составит проблем.

HexaPDF — библиотека для работы с PDF-файлами. Функции HexaPDF включают в себя создание PDF-файлов, изменение существующих файлов (слияние и извлечение нужных страниц, фрагментов и изображений), оптимизация размера файлов и много других необходимых операций.

Daru — библиотека для анализа, манипулирования и визуализации данных в Ruby.

RorVsWild — гем для мониторинга производительности Ruby on Rails приложений.

Trestle — довольно молодой admin-фреймворк для RoR приложений.

Graphql-guard — гем, который предоставляет авторизацию для graphql-ruby.

Xport — новый гем для экспорта Rails моделей в XLSX/CSV файлы.

Enhanced Rails Architecture — свежий список архитектурных паттернов для особенностей, выходящих за пределы Ruby on Rails архитектуры.

Async — Компонуемый I/O фреймворк для Ruby.

Релизы

Версия Rails 5.1.3, выпущенная 3 августа, включает в себя незначительные изменения в Action Cable, Action Mailer, Action Pack, Active View, Active Job, Active Model, и других Rails-компонентах. Полный список изменений смотрите на GitHub.

Также команда коммитеров Ruby on Rails расширилась тремя новыми разработчиками. Команда коммитеров (commiters team) работает наряду с core team Ruby on Rails за исключением того, что не имеет доступа к финальным релизам и set policy. Тем не менее, все участники core-команды начинали с commiters team, и очевидно, что новые разработчики очень скоро присоединятся к ключевой команде RoR.

Книги

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

Domain-Driven Rails — 23 августа вышла книга Domain-Driven Rails от Arkency. Книга доступна в электронном варианте и есть уже в продаже на официальном сайте.

Best Ruby & Ruby On Rails books in 2017 — перечень лучших книг Ruby и Ruby on Rails, курсов, видеороликов и учебных пособий, которые помогут изучать Ruby и Ruby on Rails.

Релизы

Component-Based Rails Applications: Large Domains Under Control — в феврале 2018 состоится релиз Component-Based Rails Applications: Large Domains Under Control ‒ профессиональная серия по Ruby от Addison-Wesley.

Курсы

Курсы по Ruby/Ruby on Rails от RubyGarage — в начале октября стартуют Ruby/Ruby on Rails курсы от RubyGarage для тех, кто хочет освоить профессию «Web-разработчик». Прием тестовых заданий и регистрация закончились, но вы всегда можете отслеживать события на нашей страничке в Facebook.

События

Training with Nick Sutterer — Trailblazer 2.1 — 8 сентября Ruby Meditation устраивает тренинг с Nick Sutterer, который расскажет о Trailblazer 2.1, архитектуре высокого уровня для Ruby.

RUBY Meditation #17 — 9 сентября в Киеве пройдет Ruby Meditation ‒ митап для обмена знаниями и полезными практиками. Один из ключевых спикеров ‒- Nick Sutterer, создатель Trailblazer ‒ выступит с докладом «Workflows and BPMN with Trailblazer». Также смотрите полный список спикеров и темы докладов на официальном сайте.

IT Weekend Ukraine 2017 & Ukrainian IT Awards 2017 — 16 сентября в Киеве пройдет ежегодное событие IT Weekend Ukraine, которое объединяет более тысячи участников, чтобы погрузиться в мир инноваций вместе с глобальными техническими экспертами.

Rails Girls Rzeszów — с 16 по 17 сентября в городе Жешув, Польша будет проходить митап Rails Girls. На сайте уже есть расписание. Ивент бесплатный, но не забудьте зарегистрироваться.

RailsClub Moscow 2017 — в Москве 23 сентября пройдет конференция Ruby/Ruby on Rails ‒RailsClub. Среди множества выступающих будут присутствовать Richard Schneeman, Piotr Solnica и Nick Sutterer!

EURUKO 2017 — с 29 по 30 сентября в Будапеште, Венгрия будет проходить ежегодная европейская конференция EuRuKo 2017. Расписание уже есть на сайте. Среди многочисленных спикеров выступают Yukihiro «Matz» Matsumoto — создатель языка Ruby и один из разработчиков JRuby Charles Nutter.

RUBY Meditation #18 — 7 октября стартует Ruby Meditation #18. Выступающие и темы еще не утверждены, но пока информацию можно отслеживать на страничке в Facebook.


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


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

Похожие статьи:
Корпорація Microsoft оголосила про загальну доступність віртуальних машин з процесором Ampere Altra Arm з 1 вересня. Клієнти зможуть запускати...
If you are a busy software developer trying to keep your Web development skills up to date you should be learning new software under the guidance of savvy practitioners who have vast experience in development of the real-world project....
В рубрике DOU Проектор все желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам есть о чем...
Команда популярного під час війни мобільного застосунку «Повітряна тривога» випустила важливі оновлення програми, а також...
Британська Fintech Farm, мажоритарним власником якої є Дмитро Дубілет, закрила раунд інвестицій на понад $20 млн, про це пише Forbes...
Яндекс.Метрика