Ruby/Rails дайджест #16: офіційний реліз Rails 5.0.7 і 5.1.6, нова бета-версія Hanami, створюємо Slack bot на Rails

Всім привіт! Березень потішив Ruby-спільнота безліччю цікавих подій.

Насамперед, вийшли офіційні версії Rails 5.0.7 і 5.1.6, а також бета-версія фреймворку Hanami — v1.2.0.beta2. По-друге, з'явилися перші бенчмарки превью-версії Ruby 2.6 із JIT. Також зверніть увагу на статті Daniel P. Clark про Vue.js як фронтенд-фреймворку для додатків на Rails.

Почитати

Ruby 2.6 preview 1: Timing JIT — в кінці лютого вийшла превью-версія Ruby 2.6, а вже в березні з'явилися перші бенчмарки. Наскільки ефективний JIT-компілятор? Усі відповіді — у статті.

Towards The Ruby 3?3 Performance Goal — дізнайтеся, як спільнота Ruby працює над проектом CRuby і зможе версія 3 в три рази перевершує по продуктивності версію 2.

If the OS landscape was disrupted, would Ruby have survived until today?! — Keynote by Mr. Yukihiro «Matz» Matsumoto at Ruby25 — не пропустіть головне з мови творця мови Ruby Юкихиро Мацумото (Matz) на конференції Ruby25.

A New Ruby Application Server: NGINX Unit — оглядова стаття про те, наскільки сервер додатків Nginx підходить для додатків на Ruby.

TIOBE Index for March 2018 — Ruby витіснив Delphi першої десятки рейтингу популярності мов програмування за версією TIOBE.

Passenger 5.2.2: passenger_base_uri fixed, new Phusion product spoiler — якщо ваш додаток використовує сервер Passenger, то саме час зробити апгрейд до версії 5.2.2. У статті йдеться, як це зробити.

— автор докладно розповідає про переваги RabbitMQ в порівнянні з Sidekiq при роботі з фоновими завданнями.

Practical Differences between Working in Ruby and iOS — на основі власного досвіду автор порівнює розробку на Ruby і Swift; стаття буде корисна full-stack програмістам, а також тим Ruby-програмістам, які збираються спробувати себе в мобільній розробкою під iOS.

My thoughts on Hanami — Райан Бигг ділиться своєю думкою про Ruby-фреймворку Hanami.

Implementing a basic debug mode for your Ruby CLI — автор детально описує, як налаштувати повідомлення про помилки з допомогою імплементації налагоджувального режиму для Ruby CLI.

How I Built Timeasure: Part 1 — Motivation & Method Wrapping — перша стаття з циклу, в якій автор детально описує процес створення гема Timeasure.

Solving CAPTCHAs with TensorFlow and Ruby — дізнайтеся, як навчити Ruby-додаток автоматично долати капчі за допомогою інструменту TensorFlow.

Using `yield_self` for composable ActiveRecord relations — автор розповідає про те, як метод yield_self можна використовувати в роботі з Active Record.

Why proxying Bugsnag (or similar service) might be a good idea? — на прикладі сервісу перевірки якості коду Bugsnag автор показує, як проксировать повідомлення про помилки через back end.

An overview of Desktop Ruby GUI development in 2018 — короткий огляд інструментів для створення desktop-додатків на Ruby.

Setting up a Rails app for CodeBuild, CodeDeploy, and CodePipeline on AWS — читайте, як налаштувати continuous integration/delivery/deployment Rails-додатки за допомогою сервісів AWS.

The correct emails configuration in Rails — прості поради про те, як правильно налаштувати відправку імейлів в Rails-додатках.

Ruby on Rails: 5 to Make Checks Before Launching Your App — чек-лист по пунктах, на які варто звернути увагу перед запуском вашого Ruby on Rails програми.

Use Ruby Objects to Keep Your Rake Tasks Clean — автор ділиться досвідом оптимізації Rake-завдання з допомогою об'єктів в Ruby.

Why Service Objects are an Anti-Pattern — багато Ruby-розробники використовують service objects в Rails-додатках, однак автор статті вважає цей підхід є невірним. Дізнайтеся чому!

Introducing Blueprinter — Blueprinter — новий інструмент для форматування і серіалізації API.

Is Ruby on Rails a Good Framework for Building a SaaS product? — у статті детально розібраний питання, наскільки Ruby on Rails підходить для створення SaaS-додатків.

Qyu: A distributed task execution system for complex workflows — автор розповідає про новий інструмент для розподілу завдань для Ruby.

Better passwords in Ruby applications with the Pwned Passwords API — якщо ви хочете забезпечити максимальний рівень захисту облікових записів користувачів, використовуйте Pwned Passwords API.

From Rails to Clojure, then to Java, then back to Rails — почитайте думку автора про декількох мовах програмування, а також плюси і мінуси кожного з них.

Rails test coverage: Measuring what matters with SimpleCov — стаття розповідає, чому важливо аналізувати ступінь покриття коду тестами за допомогою бібліотеки SimpleCov.

Why should you learn multiple programming languages? — навіть якщо ви першокласний фахівець з Ruby, не варто нехтувати іншими мовами програмування. Чому? Автор ділиться своєю думкою.

Monitoring Sidekiq Using AWS Lambda and Cloudwatch — функціоналу Sidekiq може бути недостатньо для аналізу обробки фонових завдань; дана стаття розповість, як це виправити за допомогою AWS Lambda.

Ruby Benchmarking — якщо ви будуєте велике додаток на Ruby, то напевно ви хочете виміряти його продуктивність. Стаття ознайомить вас з тим, як якісно протестувати програму.

Добірка від Mensfeld

Добірка від Arkency

Добірка від Engine Yard

Добірка від BigBinary

GPG decryption without pin entry pop up using GPGME — коротке керівництво про те, як розкодувати файли, зашифровані за допомогою інструменту GnuPG (він же GPG).

Також продовження серії статей про Ruby 2.5:

Добірка від AppSignal

Добірка від Pawe? D?browski

Добірка від Nopio

Добірка від End Point

Туторіали

Capistrano deploy to ubuntu with systemd, nginx/puma and rbenv — туторіал по розгортанню додатка і (або) середовища розробки на одному сервері за допомогою Capistrano.

Bare Bones Rails Action Cable Tutorial — туторіал по створенню чат-сервера за допомогою Action Cable.

Upgrade Rails from 4.2 to 5.0 — стаття звертає увагу на найважливіші аспекти при оновленні Rails-додатки з версії 4.2 до 5.0.

How to Track Down and Fix Slow Active Record SQL Запити in Rails — незадоволені продуктивністю свого Rails-додатки? Не поспішайте вносити зміни в стак, можливо, проблема в базі даних, а цей туторіал навчить вас оптимізувати роботу Active Record SQL запитів.

How i've Built a Profitable Slack Bot as a Side Project in Rails — чатботы стають все більш популярні; почитайте, як створити Slack-бота за допомогою Ruby on Rails.

The Proxy pattern revisited — дізнайтеся, як використовувати Proxy дизайн-патерн за допомогою методу Module#prepend.

How to run Capybara feature specs with Selenium and headless Chrome — CircleCI 2.0 case study — туторіал вчить, як уникнути проблем з популярними інструментами Capybara і Selenium при переході з CircleCI 1.0 CircleCI 2.0.

Yes, Ruby 1.9 can support TLSv1.2! — чи можна використовувати TLSv1.2. у додатку на Ruby 1.9? Так! І цей туторіал покаже, що треба робити.

Only use named scopes outside models — як поліпшити організацію коду і збільшити продуктивність, використовуючи зазначені області дії.

Memoizing in Ruby — туторіал по оптимізації роботи програми за допомогою мемоизации.

The Local Variable Aversion Antipattern — багато Ruby-розробники уникають локальних змінних, воліючи витягнуті методи, однак наскільки цей підхід гарний? Автор ділиться досвідом і показує, як можна використовувати локальні змінні.

Grpc Tutorial With Ruby — автор вирішив оновити керівництво по налаштуванню grpc для Ruby.

Convert an ActiveRecord object into the fixture — туторіал демонструє, як перетворити об'єкт ActiveRecord в yaml формат.

Refactoring with views Ruby on Rails' ActiveSupport helpers — автор ділиться досвідом рефакторінгу коду за допомогою інструментарію ActiveSupport.

JSON API Phase 3: Server API — третя з чотирьох статей циклу про розробку API за допомогою Express і Swagger; в цій частині описується процес створення API сервера.

Dry Behaviour aka Protocol Pattern in Ruby — як використовувати патерн Protocol при створенні програми на Ruby.

Managing db schema changes without downtime — автор показує, як уникнути проблем при змінах схеми даних в Rails-додатку.

JSONify your Ruby Translations — дізнайтеся, як використовувати формат JSON для Ruby трансляцій.

How to test logs using RSpec expectations and StringIO in Ruby — стаття показує два способи тестування логів.

UPGRADING TO RAILS 5.1 X — розробник компанії RED Panthers ділиться досвідом оновлення одного з продуктів до версії Rails 5.1.

Focused `puts` with debugging STDERR — туторіал допоможе провести налагодження не тільки написаного вами коду, але також коду використовуваних вами гемов.

Elapsed time with Ruby, the right way — дізнайтеся, як правильно запрограмувати підрахунок часу виконання в Ruby-додатку.

JetRockets

RubyGuides

Codeship

Релізи

Rails 5.0.7 and 5.1.6 have been released — офіційно вийшли нові версії Rails: 5.0.7 і 5.1.6. Дізнайтеся, що змінилося в порівнянні з попередніми версіями!

Announcing Hanami v1.2.0.beta2 — вийшла бета-версія фреймворку Hanami v1.2.0.beta2.

Rails 5.2.0 RC2: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials — Rails-спільнота завершує роботу над новою версією нашого улюбленого фреймворка. Дізнайтеся, що нового у другій предвыпускной версії 5.2.0 RC2.

NGINX Unit Beta — вийшла бета-версія сервера додатків Nginx з підтримкою Ruby.

Ruby Gems

Interesting Methods — цей новий гем дозволяє швидко переглянути методи об'єктів в Ruby.

Deferral — гем дозволяє використовувати в Rails-додатках метод defer за зразком Golang.

Pwned — Pwned дозволяє використовувати Pwned Passwords API для Rails.

Послухати

241: Upgrading Kickstarter to Rails 5 with Logan McDonald — провідні подкасту обговорюють оновлення програми Kickstarter з Rails 4 на Rails 5.

The Bike Shed

Ruby Rogues

RWpod

Greater Than Code

Подивитися

Method Driven Development — автор описує Method Driven Development (MDD) — техніку, яку він використовує при роботі з гемом Geocoder.

Develop a Messenger Bot in Pure Ruby — Andy Barnov — Не пропустіть видеотуториал про те, як створити чатбота на Ruby за допомогою фреймворку Rubotnik.

CSV & XML Injections — YYCRuby Presentation — презентація Гевіна Міллера з митапа YYCRuby; дізнайтеся, як запобігти CSV і XML injections.

Нова добірка від GoRails , в якій ведучий розглядає можливості ActiveStorage в Rails 5.2, а також вчить створювати шаблони для Rails-додатків:

Підбірка платних скрінкасти від Drifting Ruby у березні

Березневі випуски платних скрінкасти від Ruby Tapas

Події

Remote Ruby — 5 квітня пройде щомісячний онлайн-івент Remote Ruby. Ідеально для тих, хто хоче бути в курсі подій у світі Ruby, не виходячи з дому!

Rails Girls Rotterdam — 14 квітня в Роттердамі Rails Girls проведуть безкоштовний одноденний воркшоп.

Конференції

Ruby Meditation #21 — ще не пізно зареєструватися на Ruby Meditation, яка пройде Харкові 14 квітня. Вас чекають цікаві та корисні доповіді, живе спілкування і дружня атмосфера.

RailsConf — якщо у вас відкрита віза в США, не пропустіть RailsConf 2018, найбільшу Ruby-конференцію в світі, яка пройде 17-19 квітня в Піттсбурзі, штат Пенсільванія.

Isle of Ruby — з 13 по 15 квітня у Великобританії пройде Isle of Ruby — фестиваль, де розробники діляться досвідом і відпочивають всім Ruby-ком'юніті.

RubyConfBY 2018 — 21 квітня в Мінську пройде третя конференція RubyConfBY. Теми включають прискорення Ruby за допомогою JIT-компілятора і перспективи використання мови Ruby в машинному навчанні.


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


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

Опубліковано: 06/04/18 @ 10:00
Розділ Безпека

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

DOU Books: 5 книжок про менеджмент від Сергія Хлівненка, Engineering Manager у Lucky Labs
Як я працюю: Петро Коренєв, iOS Team Lead в Sigma Software
Березень 2018 — финстрип, рухаємося до 100К з інфо-сайтів
PHP дайджест #12: Laravel is hiring, 7.24, 8.0 вже в роботі
Реальна історія про те, як в Uklon впроваджували машинне навчання