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.

— автор ділиться досвідом оновлення 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 «Екто» — розробник з 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 App on Rails 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 and Searching 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 — гість подкасту, Тома Parkin, ділиться своїм досвідом, як він став розробником і вивчав Ruby, Sinatra, Git і не тільки.

RWpod

01 випуск 06 сезону. Meltdown and Spectre, Npm operational incident, Uppy, Taskr та інше

02 випуск 06 сезону. Ruby 2.5 introduces FrozenError class, Awesome Ruby Meetups, what's New in HTML 5.2, Ngx-kit та інше

03 випуск 06 сезону. jQuery 3.3.0, Bootstrap 4, Intro to Arel, Mapbox for Rails, Keep webpack fast, After.js, Wobble, JS Paint та інше

04 випуск 06 сезону. Webpack 4 beta, Reducing Memory Usage in Ruby, Ionic vs React Native, D3 Discovery, JSNES та інше

The Bike Shed

— провідні The Bike Shed сперечаються про семантику версійності і висловлюють свою думку з приводу автоматичних звітів в changelog'ах.

— автори подкасту обговорюють проблеми, які виникають з системними тестами в 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 — ювілейний 20-й митап Ruby Meditation пройде в Києві 17 лютого. Спікери і теми ще уточнюються.

Курси

Курси RubyGarage — з 1 березня стартує черговий набір на курси Ruby/Rails в RubyGarage. Ми завжди раді новим талантам, так що поспішайте заповнити заявку і виконати тестове завдання!

CHI Software — CHI Software в Харкові проходить стажування на Ruby on Rails розробника. Деталі — за посиланням на DOU .


Щодо тем/матеріалів/івентів, які варто додати в наступний випуск дайджесту, пишіть в коментарях або на volodymyr.vorobiov@rubygarage.org . Дякуємо за допомогу в підготовці дайджесту команді RubyGarage.


? Попередній випуск: Ruby дайджест #13

Опубліковано: 03/02/18 @ 08:00
Розділ Безпека

Рекомендуємо:

Product Management дайджест #1: три українських продукту стали кращими на Product Hunt
Січень 2018 — финстрип за інфо-сайтів, майже 30К грн в міс
Чому варто замислитися про функціональному програмуванні: плюси, мінуси і застосування
Огляд IT-ринку праці: Полтава
DOU Проектор: Liki24 — сервіс доставки ліків за низькими цінами