Ruby/Rails дайджест #14: разворачиваем Rails-приложение на AWS и Azure, обзор Active Storage в Rails 5.2.0
Всем привет! После новогодних праздников у нас есть еще один повод для хорошего настроения. Ровно год назад мы с командой RubyGarage начали создавать Ruby/Rails дайджест, так что это наш маленький юбилейный выпуск.
Обещаем и в дальнейшем радовать вас интересным и качественным контентом. А от вас ждем комментарии и отзывы, ведь они помогают сделать этот дайджест еще лучше!
А теперь давайте смотреть, что же произошло в мире Ruby и Rails в январе:
Почитать
Understanding the basics of Ruby on Rails: SQL Databases and how they work — если вы новичок в Ruby on Rails, статья поможет разобраться с базой данных SQL и основными командами.
Understanding the basics of Ruby on Rails: HTTP, MVC, and Routes — вторая часть The Ruby on Rails Basics объясняет, как все устроено в вебе, что такое MVC и Routs в Rails.
Comparing Timestamps in Rails — сравнение двух timestamps в Rails: Time и DateTime.
Viewing migration SQL without running the migration — статья поможет разобраться с вопросом «Как получить SQL для миграции, не запуская SQL».
Questions to Ask When Hiring a Freelance Rails Developer — несмотря на то, что статья рассчитана на рекрутеров, Rails разработчикам стоит обратить внимание на этот пост и узнать, каких вопросов ожидать на собеседовании.
Top Qualities and Skills of a Ruby on Rails Developer — а Netguru рассказывают о главных hard и soft skills, которые должны быть у каждого Rails разработчика.
Encapsulating Queries In A Rails Model — краткая подсказка, как инкапсулировать запросы в моделях Rails-приложения.
How to Speed Up Asset Precompilation Time in Ruby on Rails App — сборка ассетов в RoR приложении может быть долгой; чтобы ускорить этот процесс, воспользуйтесь списком полезных советов от Netguru.
Upgrading to RSpec 3.7.2 and system specs — автор делится опытом обновления RSpec до версии 3.7.2.
Ruby Still Isn’t Dead — Engine Yard не устают повторять: Ruby isn’t dead. Если сомневаетесь, прочтите этот краткий пост :)
Why Factories? — Thoughtbot отвечают на вопрос о роли factories в test suites и какие проблемы решаются с помощью factories.
Things I Wish ActiveRecord Had After Using Elixir’s «Ecto» — разработчик из Infinum делится своими впечатлениями от использования Ecto — обертки для базы данных — в Elixir. Кроме того, автор рассказывает, чего не хватает ActiveRecord в сравнении с Ecto.
Ruby 3 and JIT: Where, When, and How Fast? — Appfolio делятся бенчмарками Ruby 3 в связке с JIT (just-in-time compiling).
Some Initial Ruby 2.5 Benchmarks — еще один пост с бенчмарками, в этот раз речь идет о Ruby 2.5
How We Built A Job Queue System with PostgreSQL & Ruby For Our B2B SaaS Application
The Definitive Guide to Loops in Ruby — большой гид по loops в Ruby, включая типы и методы.
Ruby on Rails / RSpec — the difference between stubs and mocks — полезная статья для тех, кто разбирается с RSpec и хочет понять разницу между stubs и mocks.
Upgrading a Rails Application Incrementally — автор делится опытом по обновлению Rails-приложения с версии 3.2 до 4.2 с минимальными проблемами в процессе.
Design Patterns: Command and Concierge in Life and Ruby — разработчики из FreeCodeCamp разыграли целую сценку в статье, показав на примере отеля, как работают команды в Ruby.
Rust for Rubyists — в последнее время появляется все больше статей по теме Rust; в этот дайджест попала еще одна статья-сравнение идиоматических свойств Rust и Ruby.
The Modular Monolith: Rails Architecture — Dan Manges, ex-CTO в Braintree, делится опытом создания модульной монолитной архитектуры для Root — Rails-приложения страховки автомобилей.
Understanding Redux store concepts by little Ruby reimplementation — автор объясняет концепцию Redux на примере его простой имплементации с помощью Ruby.
Reducing Memory Usage in Ruby — Аарон Паттернсон делится опытом оптимизации использования памяти в Ruby во время решения проблем, связанных со сборщиком мусора (garbage collector).
Серия статей от Engine Yard для новичков Ruby on Rails:
Ruby for Rails: Blocks
Ruby for Rails: Hash
Серия статей от Paweł Dąbrowski по transactions в Ruby on Rails:
Ruby on Rails. Active Record — transactions overview
Ruby on Rails. Transactions — callbacks
18 Companies Using Ruby on Rails in 2018 — что объединяет Coinbase, Strava, Intercom? То, что они построены на нашем любимом Ruby on Rails. И как говорит автор статьи: «Кто там еще говорит, что Rails не масштабируется?».
How Much Does Meltdown/Spectre Patching Slow Down a Big Rails App? — разработчики из Appfolio разбираются, как сильно патчи от таких уязвимостей, как Meltdown и Spectre, могут замедлить производительность вашего Rails-приложения.
Туториалы
Серия статей от Menseld
Kafka on Rails: Using Kafka with Ruby on Rails — Part 1 — Kafka basics and its advantages
Kafka on Rails: Using Kafka with Ruby on Rails — Part 2 — Getting started with Ruby and Kafka — туториал из двух частей по использованию Kafka, стриминговой платформы от Apache, в Rails-приложении. В первой части авторы приводят аргументы в пользу использования Kafka; вторая часть дает пошаговую инструкцию по интеграции Kafka и Rails.
Серия статей от Scout App
Deploying to AWS Part I: Dockerizing a Rails app — первый пост в серии туториалов по деплою Rails-приложения на AWS. Статья рассказывает, как «подружить» ваше Rails-приложение с Docker.
Deploying to AWS Part II: Running a Rails App on Fargate — следующая статья предлагает инструкцию по запуску Rails-приложения на Fargate — одному из сервисов AWS. Fargate позволяет запускать контейнеры, не заботясь об управлении серверами или кластерами.
Deploying to AWS Part III: Log Aggregation — логичное продолжение предыдущих постов — изучить logging, а именно более удобный формат вывода логов и перенос логов из Cloudwatch на внешний сервис.
Deploying to AWS Part IV: Performance Monitoring with Scout — узнайте, как сконфигурировать производительность приложения с помощью Scout.
Deploying to AWS Part V: The Final Punch List (load balancer, CDN, SSL) — в списке завершающих работ — конфигурация load balancer’а, CDN и SSL.
Deploying Your Rails + PostgreSQL App on Microsoft Azure — наглядный туториал показывает, как легко развернуть Rails-приложение на Azure. Кроме того, автор объясняет, как настроить базу данных PostgreSQL.
The Ruby 2.5.0 Feature Nobody Talks About — в новой версии Ruby 2.5 появилась удобная фича — branch coverage. На удивление, о ней знают не все разработчики, так что самое время познакомиться с ней.
How to make simple background job processing in Rails with Sucker Punch — статья от нашего разработчика Кирилла Шевченко о том, как сделать простую обработку фоновых задач с помощью библиотеки Sucker Punch. Создание задач, тестирование, плюсы и минусы этого подхода — в статье.
Ruby String Methods (Ultimate Guide) — полный гид по строковым методам в Ruby с примерами.
Design Pattern: Prototype and Pizza — в статье говорится о Prototype — одном из паттернов OOD. Но автор решил, что писать очередную статью про дизайн-паттерны было бы скучно и показал принцип работы Prototype на примере пекарни пиццы. Получился интересный обзор!
Setup SSL proxy for insecure browser content with Ruby and NGINX — SSL защита становится все более популярной опцией в современной разработке веб- и мобильных приложений. В статье объясняется, как настроить Ruby и NGINX сервер, чтобы они работали, как SSL прокси для небезопасного контента.
Binary Searching and Ruby’s bsearch Method — автор со своего опыта рассказывает, как преодолеть трудности с бинарным поиском в Ruby.
Rails 5.2: Active Storage and Beyond — Evil Martians представили большой гайд по Active Storage — новой фиче в Rails 5.2.
Setting up CircleCI 2.0 for Rails — в июле 2017 у CircleCI вышла версия 2.0. Thoughtbot представили обзор новых возможностей платформы.
Релизы
simple-admin v0.1.1-alpha released — simple-admin — удобный фреймворк для создания админ дашбордов. В январе вышла новая версия библиотеки.
Rails 5.2.0 RC1: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials
Ruby Gems
Metamagic 101 — Introduction, Installation & Usage — удобный плагин для создания и управления meta tags.
Urlify Functions & Its Implementation — гем Urlify конвертирует UTF-8 strings в ASCII-безопасные URL strings, делая их готовыми к использованию URL-фрагментами.
API Versioning with Ruby on Rails: What Gems Are the Best — отличная подборка гемов для управления версиями API от Yalantis.
Materialized Views in Ruby on Rails with Scenic — автор подготовил case study по созданию materialized views в Rails-приложении с помощью библиотеки Scenic.
Kan — простая и функциональная библиотека для авторизации от Антона Давыдова, одного из создателей фреймворка Hanami.
Any_good — часто, когда мы находим новый гем, мы идем на GitHub или rubygems.org, чтобы проверить статус гема (как давно он обновлялся, активно ли поддерживается и т. д.). any_good автоматизирует эту задачу и выдает рейтинг гема, основываясь на данных из GitHub, GitLab, BitBucket и других ресурсов.
Localer — инструмент для автоматического определения недостающих переводов i18n.
Послушать
Подборка подкастов от Ruby Rogues
RR 346: Ruby Debuggers with Daniel Azuma — беседа с Daniel Azuma, Ruby/Elixir — разработчиком из Google. Большая часть подкаста посвящена обсуждению облачных Ruby-дебаггеров.
RR 343: Ruby 2.5. With Jesus Castello — подкаст с Jesus Castello о возможностях Ruby 2.5 и улучшениях производительности в новой версии.
MRS 027: Thom Parkin — гость подкаста, Thom Parkin, делится своим опытом — как он стал разработчиком и как изучал Ruby, Sinatra, Git и не только.
RWpod
01 выпуск 06 сезона. Meltdown and Spectre, Npm operational incident, Uppy, Taskr и прочее
The Bike Shed
140: A Sign of ... Stability? — ведущие The Bike Shed спорят о семантике версионности и высказывают свое мнение по поводу автоматических отчетов в changelog’ах.
138: I Don’t Know How the World Works Anymore — авторы подкаста обсуждают проблемы, которые возникают с системными тестами в Rails.
Посмотреть
Подборка платных скринкастов от Drifting Ruby
#113: Ruby on Rails 5.2.0 Changes and New Features — на днях вышла новая версия Rails 5.2.0 и подкаст Drifting Ruby посвящен обзору изменений и новых фич.
#114: Payment Gateway Basics with Stripe — скринкаст для новичков, которые разбираются с интеграцией популярной платежной системы Stripe.
#117: Upgrading Ruby on Rails Versions — из скринкаста узнаете, как обновить Rails-приложение с версии 4.2.10 до 5.2.0.
GoRails
Rais & Vue.js Trello Clone — Part 8 — 8 часть туториала по созданию приложения-клона Trello на базе Rails и Vue.
Handle 404s Better Using Rescue_from — вместо выдачи пользователю ошибки 404, можно использовать Active Support метод rescue_from, который выдает результаты поиска. Скринкаст наглядно показывает, как использовать этот метод.
Подборка платных скринкастов от RubyTapas
Episode #511: Minimum Viable Method — тема скринкаста: ответ на вопрос, стоит ли извлекать метод, чтобы удовлетворить закон Деметры.
Episode #512: Single File — тема скринкаста: оптимизация рефакторинговых сессий в Ruby.
События
Remote Ruby — если зимой совсем никуда не хочется выбираться из уютного дома, можно посетить онлайн-ивент Remote Ruby. Митап пройдет 8 февраля.
Ивенты Rails Girls
Rails Girls Lviv — Rails Girls уже не в первый раз во Львове. В этом году ивент пройдет 10 февраля, так что спешите зарегистрироваться.
Rails Girls Leiden — в городе Лейден, Нидерланды, Rails Girls состоится 16 и 17 февраля. Регистрация закрыта, но можно записаться в waiting list.
Rails Girls Warsaw — если не успеете на ивент во Львове, можно поехать в соседнюю Варшаву. Двухдневный crash course пройдет 24 и 25 февраля. Регистрация закончилась, но можно записаться в waiting list.
Конференции
wroc_love.rb — безвиз позволяет посещать еще больше интересных событий! С 16 по 18 марта во Вроцлаве пройдет традиционная конференция wroc_love.rb с интересными спикерами и неформальным общением после ивента.
Special Ruby Meditation #20 — юбилейный
Курсы
Курсы RubyGarage — с 1 марта стартует очередной набор на курсы Ruby/Rails в RubyGarage. Мы всегда рады новым талантам, так что спешите заполнить заявку и выполнить тестовое задание!
CHI Software — у CHI Software в Харькове проходит стажировка на Ruby on Rails разработчика. Детали — по ссылке на DOU.
Касательно тем/материалов/ивентов, которые стоит добавить в следующий выпуск дайджеста, пишите в комментариях или на
Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра.
. Спасибо за помощь в подготовке дайджеста команде RubyGarage.
← Предыдущий выпуск: Ruby дайджест #13