Ruby/Rails дайджест #7: обновления Ruby/Rails, видео с Ruby конференций, Ruby в Японии, так все же пробелы или табуляция

Представляем вам новости из мира Ruby/Rails в нашем дайджесте за июнь!

Ознакомьтесь с последними обновлениями и функционалом Ruby/Rails, выясните, какие есть отличия языка Руби в американском и японском вариантах использования. Для тех, кто хотел, но не смог побывать на конференциях RubyC 2017 и RedDotRubyConf 2017 предлагается подборка видео докладов. Интервью с DHH о бизнесе, а с Aaron Patterson о будущем Ruby и BBQ. Эти и многие другие полезные новости специально для вас.

Почитать

5+1 Ruby Gems Which Can Cause You Troubles — список Ruby-гемов, с которыми нужно быть осторожным при разработке проекта, по мнению команды RUBYROIDlabs.

Working with Facebook using Devise, Omniauth, Koala and Rails 5 — сегодня социальные сети облегчают процесс авторизации на многие сайты. Как сделать простейшую аутентификацию через Facebook в приложении Rails расскажет эта статья.

On code readability in object-oriented languages — статья объясняет, как объектно-ориентированные языки помогают более четко выражать мысли и идеи в ограниченный набор слов.

Common Table Expressions in ActiveRecord: A Case Study of Quantiles — пример решения задачи Quantiles на стеке технологий Ruby on Rails 5.1, Arel, PostgreSQL 9.6. У автора получился подробный кейс стади с большим количеством примеров.

A Tale of Slow Pagination — у вас медленно работает pagination в приложении? Если вы пытались что-то с этим делать, но безрезультатно, рекомендуем к прочтению эту статью.

Продолжение серии статей о Ruby 2.4, которые держат разработчиков в курсе о новом функционале и обновлениях в Ruby.

Ruby 2.4 added Hash#transform_values and its destructive version from Active Support

Why you should probably avoid mixins — статья объясняет, почему следует избегать использования примесей (mixins) в программировании.

How to deal with major Ruby on Rails upgrades (like moving from 4.1 to 5.1) — статья полезна для тех, кто до сих пор не обновил свои ‘Рельсы’. Вы сильно рискуете ребята. Команда gemnasium делится опытом, как безболезненно выполнять такие обновления.

DeviseInvitable + Rails API — практический пример того, как использовать DeviseInvitable в Rails API без HTML шаблонов.

Power Moves: SQL Server on Linux, Rails, and Docker — в прошлом месяце Microsoft объявил предварительный показ следующей версии SQL Server. Это значительно упрощает работу с Docker, и Rails 5.1 также повышает интеграцию с SQL Server до рекордно высокого уровня. Учимся как все настроить.

Implementing Linear Regression using Ruby — основы машинного обучения. Пост о том, как реализовать Linear Regression на Ruby. Создаем модель, обучаем, и делаем прогнозы.

Implementing Classification using Logistic Regression in Ruby — и дальше основы машинного обучения. Туториал объясняет, как решить задачу классификации с помощью Logistic Regression, и да, примеры на Ruby.

How can I protect a user’s file uploads in Rails? — для сайтов, которые предоставляют платный цифровой контент важно иметь возможность давать доступ только тем пользователям, которые за него заплатили. Статья о том как с помощью Ruby on Rails и Paperclip реализовать такой функционал.

Add option for class_attribute default — предложение от David Heinemeier Hansson, как добавлять default значение для class_attribute в Rails.

Rails’ CurrentAttributes considered harmful — в этой статье, с множеством отсылок на другие ресурсы, автор бросает вызов коду DHH. CurrentAttributes код написанный DHH против явного Ryan Bigg кода.

GraphQL Ruby Error Handling — работа с ошибками в GraphQL.

Introduction to Scala for Rubyists — переход от Ruby way к Scala way.

Managing Rails tasks such as ’db:migrate’ and ’db:seed’ on Kubernetes while performing rolling deployments — решение, как развернуть приложение Rails на системе управления контейнерами Kubernetes.

Rails Development: Coding Conventions & Best Practices — статья с актуальными советами для начинающих по оформлению кода, именованию методов, процесса рефакторинга.

Validate Ruby objects with Active Model Validations — подключаем ActiveModel::Validations к не ActiveRecord объектам.

Helpful Resources for Your Rails App Upgrade — в продолжение темы обновления Rails приложений, в статье собраны некоторые из лучших чек листов, инструментов, руководств и статей по обновлению до разных версий Rails.

Learning Rails in 2017 — гайд, как лучше изучать Ruby on Rails, с множеством ссылок и закладок на полезные ресурсы.

7 ways to evaluate gems, and 1 crazy idea — добавляем в проекты только лучшее. В статье описывается 7 шагов для оценки гема.

Using prettier and rubocop in Ruby on Rails application to format JavaScript, CSS and Ruby files — туториал, как с помощью гемов prettier и rubocop в приложении Ruby on Rails поддерживать в порядке JavaScript, CSS и Ruby файлы.

Rails 5.1’s form_with vs. form_tag vs. form_for — сравнение ‘form_tag’, ‘form_for’ и ‘form_with’ с примерами кода.

Surveying gemspec file specifiers — вы все еще правите Gem::Specification#files руками? Тогда мы идем к вам :).

The 3 Tenets of Service Objects in Ruby on Rails — Активно используете Service Objects для того чтобы уменьшить количество кода в Controllers и Models? Тогда добро пожаловать в мир fat services [folder]! Автор книги Building a SaaS Ruby on Rails 5 поднимает это проблему в своей статье.

Rails 5.1 has dropped dependency on jQuery from the default stack — хорошие новости, Rails прощается с jQuery :).

Rails Quiz: XSS Edition — Думаете, вы знаете все о XSS? Все же проверьте свои знания, тест на 5 минут.

Faster Rails: Indexing Large Database Tables Without Downtime — статья является частью серии Faster Rails. В этом выпуске речь идет об индексировании больших таблиц базы данных без простоя.

Design Patterns & Ruby: The Template Method Pattern — поговорим про паттерн Template Method который позволяет определить ‘скелет’ алгоритма, оставив конкретную реализацию классам наследникам.

Creating a Heroku-like Deployment Solution with Docker — Как с помощью Docker, без каких либо дополнительных инструментов, создать решение для развертывания, подобное Heroku.

Building and Deploying Ruby Docker Images with CircleCI and Heroku — в статье рассматривается, как настроить Ruby приложение для развертывания в качестве контейнера Docker на Heroku с использованием CircleCI.

Build your first server-side rendered React app with Rails — замечательный tutorial по созданию Rails-React server-side rendering приложений.

Upgrading Shopify to Rails 5 — история обновления Shopify monolith — одного из старейших и крупнейших приложений на Rails — от версии Ruby on Rails 4.2 до 5.0.

Speeding Up Rendering Rails Pages with render_async — предложение от Semaphoreci, как ускорить рендеринг страниц в Rails приложении.

Speed up bundle install with this one trick — автор предлагает способ ускорения загрузки гемов с помощью специфических настроек bundler.

Making a Rails App Move Faster: A Tale of Lessons Learned — иной подход, как найти медленные запросы в Rails и сделать так, чтобы они перестали быть медленными.

A Story of Passion and Hash Tables — как создавалась адресация для хэш-таблиц в Ruby 2.4.0 для получения дополнительной скорости.

Private files for your Rails app using S3 — настраиваем S3 для Paperclip.

Adding Read Replicas in a Production Ruby on Rails System with Zero Downtime — когда все запросы к БД оптимизированы и все необходимые индексы к таблицам добавлены но этого все равно недостаточно, чтобы выдерживать нагрузку на систему, необходимы координальные изменения того, как данные проходят через эту систему. Автор делится опытом, который приобрел при решении такой задачи.

RSpec — туториал о RSpec matchers, пользе их применения и каким образом они облегчают работу.

Making RSpec Feature Tests More Semantic By Dividing Scenarios Into Sections — туториал о том, как делать функциональные тесты на RSpec более семантичными, разбивая сценарии на разделы.

Test critical paths in your app with ease thanks to Dependency Injection — с помощью шаблона программирования Dependency Injection можно протестировать потенциально неудобный для тестирования код. В статье рассматривается сценарий теста.

Headless Capybara Feature Specs with Chrome — рекомендации, как значительно ускорить процесс тестирования с помощью ChromeDriver. Автор предупреждает, что использование ChromeDriver все еще находится на экспериментальном этапе.

Testing cookies in Rails — пример, как писать тесты на cookies в Rails приложении.

Unit testing ActionCable channels with RSpec — Rails 5.1 не имеет официальной поддержки для тестирования ActionCable. Автор дает пример как писать unit тесты на single channel action.

Acceptance testing using actors/personas — пример того, как можно креативно подходить к написанию приемочных автотестов, автор делится интересным опытом, статья достойна внимания.

Rails Helper Testing Made Simple — советы с примерами, как не нагромождать Rails helpers при разработке web-приложения и быть организованным в процессе их тестирования.

Are you Spying on me? A quick overview of Spies in RSpec — Автор демонстрирует как внедрить ‘шпиона’ в труднодоступный код с целью протестировать его.

Ruby on Rails отчеты в июне

This Week in Rails: class_attribute default, mini_racer and more!

This Week in Rails: default option for mattr_accessor, write_multi and more!

This Week in Rails: mailer configuration, perf improvement, and bug fixes!

This Week in Rails: 5.1.2.rc1 released and faster fixtures

RubyC 2017 reviews

RubyC 2017 video highlights! — 13 видео с докладами спикеров RubyC 2017.

RubyC-2017 photo review — фотоотчет RubyC 2017 на официальной странице в Facebook.

RubyC 2017 review — личные впечатления участника конференции от докладов.

Random

INTERVIEW: Aaron Patterson, Rack, Github and BBQ — интервью с Aaron Patterson — одним из самых уважаемых и высоко оцененных разработчиков в мире Ruby. В интервью он освещает разнообразные темы, начиная с ответов на вопросы о будущем Ruby и заканчивая своим любимым рецептом барбекю.

Developers Who Use Spaces Make More Money Than Those Who Use Tabs — бесконечный спор среди разработчиков, что лучше пробелы или табуляция, который является предметом многих дебатов и шуток. Статья проливает свет почему разработчикам стоит использовать пробелы вместо табуляции и предлагает инфографику того, как ситуация влияет на зарплаты разработчиков.

How is Ruby Different in Japan? — язык Ruby появился благодаря японцу Yukihiro Matsumoto, но оказывается американский стиль использования Ruby отличается от японского. Разбираемся, что общего и какие есть отличия.

David «DHH» Heinemeier Hansson: The Entrepreneurial and Unstoppable Stoic — интервью с David «DHH» Heinemeier Hansson, создателем Ruby on Rails, основателем и техническим директором Basecamp.

Послушать

The Bike Shed # 114: Reasonably Thread Safe — авторы подкаста The Bike Shed обсуждают возникновение крошечной DOS системы во время обновления сайта thoughtbot.com до версии Rails 5.1. А также, в подкасте обсуждается, как Rails может лучше обрабатывать предупреждения, которые происходят только в конфигурации продукта.

Ruby Rogues # 313 Do I need a Front-End Framework? — авторы подкаста Ruby Rogues обсуждают frontend фреймворки в связке с Rails.

Ruby Rogues # 314 DynamoDB on Rails — DynamoDB — это облачная NoSQL база данных. Потратьте немного времени, чтобы узнать больше о DynamoDB и какие задачи можно решать с помощью этого инструмента.

Подборка подкастов от RWpod за июнь:

Посмотреть

AmberCasts #1 Ruby on Rails development environment with Docker and docker-compose — скринкаст с инструкциями, как настроить среду локальной веб-разработки с помощью Docker и docker-compose.

From Rails to serverless, via DDD and microservices by Andrzej Krzywda — выступление Andrzej Krzywda, основателя и исполнительного директора компании Arkency, на митапе #pivorak. Andrzej говорит о бессерверной архитектуре приложений и как она связана с Rails, DDD и микросервисами.

RedDotRubyConf 2017 — видео выступлений с конференции RedDotRubyConf 2017, которая проходила с 22 по 23 июня в Сингапуре. Среди выступающих звезды Ruby-сообщества — Yukihiro Matsumoto, Tim Riley, Aaron Patterson и многие другие.

GoRails: Charts with Chartkick and Groupdate — очередной скринкаст от GoRails о добавлении различных типов диаграмм в приложение Rails с помощью Chartkick и использовании Groupdate для упрощения групповых запросов в SQL.

GoRails: Analytics with Segment | Preview — еще один скринкаст от GoRails. Скринкаст о том, как отслеживать пользователей и действия, которые они предпринимают в вашем Rails приложении, а затем, используя Segment, отправлять их различным сторонним службам.

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

Ruby on Rails релизы в июне:

  • Rails 4.2.9 — полное исправление ошибок. Теперь версия Rails 4.2 будет получать новые релизы только в случае серьезных проблем с безопасностью. Изменения для каждого гема представлены в ченджлогах на GitHub. Все коммиты на GitHub дают полный список изменений.
  • Rails 5.0.4 — релиз Rails версии 5.0.4. Все изменения, которые произошли с момента выпуска Rails 5.0.3 можно проверить на GitHub.
  • Rails 5.1.2 — версия Rails 5.1.2. Полный список изменений можно найти по ссылке на GitHub.

Rubygems Monthly: Sinatra 2, Bundler 1.15, Rubocop, CanCanCan 2, Devise, Puma and ActsAsTaggableOn 5 — команда gemnasium недавно запустила рубрику Rubygems Monthly, где делится подборкой релизов Ruby-гемов.

RubyInstaller 2.4.1-1 released — обновление для RubyInstaller на Windows.

JRuby 9.1.12.0 Released — последнее обновление для JRuby.

GitHub::Palkan: N_plus_one_control — RSpec и Minitest matchers для предотвращения проблем с запросами N + 1.

GitHub::Palkan: Anyway_config — библиотеки Ruby и настройки приложений на Steroids, инструмент, который позволяет загружать параметры из разных источников: YAML, Rails secrets, environment.

GitHub::BaseSecrete: Redis_dashboard — web-приложение для Sinatra, отображающее информацию о серверах Redis, которое можно запускать самостоятельно или внутри приложения Rails.

GitHub::Jakewmeyer: Ruby-Scripts — собрание скриптов Ruby.

GitHub::Boazsegev: Iodine — быстрый веб-сервер с поддержкой многопоточности для real-time приложений Ruby.

Книги

Релизы:
Rails 5 Test Prescriptions: Build a Healthy Codebase — 25 ноября выйдет первое издание книги Rails 5 Test Prescriptions: Build a Healthy Codebase. Уже можно делать предварительный заказ.

Agile Web Development with Rails 5.1 — также 25 ноября выходит первое издание книги Agile Web Development with Rails 5.1. Предзаказ уже открыт.

Обновления:
Testing with RSpec book updated for 2017 — книга Everyday Rails Testing with RSpec была недавно переиздана. В обзоре перечислены все обновления и доработки, актуальные на 2017 год.

События

Ruby Meditation #16 — митап пройдет 15 июля в Одессе. Уже известны некоторые спикеры. Продажа билетов заканчивается 14 июля, для студентов есть скидка по промокоду, поторопитесь.

Rails Girls Bratislava — пятая конференция Rails Girls пройдет 22 июля в Братиславе, Словения. На сайте уже есть расписание. Не забудьте зарегистрироваться.

RailsClub Moscow 2017 — 23 сентября в Москве анонсирован RailsClub — Ruby/Ruby on Rails конференция, среди выступающих Richard Schneeman, Piotr Solnica, но список спикеров еще утверждается. Билеты уже в продаже.

EURUKO 2017 — ежегодная Европейская конференция будет проходит 20-30 сентября в Будапеште, Венгрия. Состав спикеров до конца не утвержден, но точно будет выступать Yukihiro «Matz» Matsumoto — создатель языка Ruby.


← Предыдущий выпуск: Ruby дайджест #6
<—Следующий выпуск: Ruby дайджест #8 → —>

Похожие статьи:
19 липня у світі стався глобальний збій і 8,5 мільйонів комп’ютерів вийшли з ладу через помилкове оновлення CrowdStrike. Про те,...
Site Reliability Engineering сейчас бурно развивается, но в Восточной Европе пока еще не стал мейнстримом. Многим эта аббревиатура...
Привіт. Мене звати Андрій. Я керівник невеликої вебстудії, проте зараз найбільше часу приділяю власним проєктам. Така...
Минуло два тижні від початку широкомасштабного вторгнення росії в Україну, і більшість ІТ-компаній почали...
Компания MediaTek Labs представила новую версию макетной платы MediaTek LinkIt ONE и стартового набора разработчика Grove IoT...
Яндекс.Метрика