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 та інше
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 .
Щодо тем/матеріалів/івентів, які варто додати в наступний випуск дайджесту, пишіть в коментарях або на [email protected] . Дякуємо за допомогу в підготовці дайджесту команді RubyGarage.
? Попередній випуск: Ruby дайджест #13
Опубліковано: 03/02/18 @ 08:00
Розділ Безпека
Рекомендуємо:
Product Management дайджест #1: три українських продукту стали кращими на Product Hunt
Січень 2018 — финстрип за інфо-сайтів, майже 30К грн в міс
Чому варто замислитися про функціональному програмуванні: плюси, мінуси і застосування
Огляд IT-ринку праці: Полтава
DOU Проектор: Liki24 — сервіс доставки ліків за низькими цінами