Ruby/Rails дайджест #23: реліз Ruby 2.5.3, оновлення Hanami до версії 1.3.0, фреймворк Action Text для Ruby on Rails 6
Всім привіт!
У жовтні Ruby-ком'юніті встигла порадувати нас хорошими новинами. Перш за все, були представлені оновлені версії мови Ruby і популярного фреймворку Hanami. Спільнота Ruby веде активну роботу над фреймворком Action Text, який увійде до складу Ruby on Rails 6 (не пропустіть добірку новин про Rails 6 від bogdanvlviv ). Також зверніть увагу, що в CircleCI додана підтримка GitHub Checks.
Почитати
Introducing Action Text for Rails 6 — що таке фреймворк Action Text, який буде включений в Ruby on Rails 6.
What is new in Rails 6.0 — добірка останніх новин про Ruby on Rails 6.
Upgrading GitHub from Rails 3.2 to 5.2 — Eileen Uchitelle з команди GitHub розповідає про оновлення проекту до версії Ruby on Rails 5.2.1.
Cache Invalidation Complexity: Rails 5.2 and Dalli Cache Store — як уникнути проблем у роботі кеш-ключів при використанні Rails 5.2.
Working with ActiveRecord Callbacks — автор ділиться порадами щодо використання колбэков ActiveRecord в Rails-додатках.
Code Audit: How to Provide the Best Quality for Your Ruby on Rails Application — як провести code audit програми на Ruby on Rails.
Microservices vs spaghetti code are not your only options — автор розглядає можливий варіант стандартизації архітектури Passenger за прикладом Kubernetes.
Meet Yabeda: Modular framework for instrumenting Ruby applications — знайомимося з Yabeda — фреймворком для збору метрик в додатках на Ruby.
How Devise keeps your Rails app passwords safe — розбираємося в деталях: як працює популярний гем Devise.
CircleCI launches support for GitHub Checks — інструмент CircleCI тепер підтримує GitHub Checks.
Where Ruby/Sinatra falls short — що слід враховувати при розробці додатків на Sinatra.
Ruby Method Lookup, RubyVM.stat and Global State — автор детально описує, як і навіщо уникати визначення глобальних методів і констант.
Some notes on what's going on in ActiveStorage — стаття допоможе розібратися з тим, як працює Active Storage в Ruby on Rails.
Pair With Me: Rubocop Cop that Detects Duplicate Array Allocations — вчимося використовувати популярний лінтер RuboCop для прискорення продуктивності Rails-додатків.
12 Factor CLI Apps — знайомимося з методологією 12 factor app, розробленої компанією Heroku для створення CLI-додатків.
Destructuring Methods in Ruby — як виконати деструктуризацию методів в Ruby.
Rails Parts — автор ділиться досвідом реструктуризації програми на Rails.
Ruby gotchas for the JavaScript developer — на що варто звернути увагу JavaScript-розробнику при вивченні Ruby.
Ruby Plotting with Galaaz: An example of tightly coupling Ruby and R in GraalVM — вчимося будувати графіки мовою R в Ruby-додатках за допомогою бібліотеки Galaaz.
Добірка від AppSignal
The Magic of Class-level Instance Variables — які можливості дає використання class-level instance variables в розробці на Ruby.
The innards of a RubyGem — автор показує, як створити гем без використання Bundler.
Building a Ruby C Extension From Scratch — коротка інструкція, як писати Ruby-розширення на мові C.
Добірка від BigBinary
Ruby 2.6 adds RubyVM::AST module — розбираємося з модулем RubyVM::AST в Ruby 2.6.
Ruby 2.6 Range#cover? now accepts Range object as an argument — метод Range#cover? в Ruby 2.6 приймає об'єкти класу Range в якості аргументів.
Rails 5.2 adds DSL for configuring Content Security Policy header — в Rails 5.2 додано DSL для конфігурації Content Security Policy.
Rails 5.2 disallows raw SQL in dangerous Active Record methods preventing SQL injections — версія 5.2 фреймворку Ruby on Rails не дозволяє використання чистого SQL для запобігання SQL injections.
Skip devise trackable module for API calls to avoid users table getting locked — автор ділиться досвідом вирішення проблеми, пов'язаної з роботою модуля trackable, при використанні популярного гема Devise.
Добірка від Bozhidar Batsov
A Better Way to Compare Versions in Ruby — як порівнювати версії при розробці на Ruby.
A Safer RuboCop — автор розповідає про безпечному автоисправлении в RuboCop.
Добірка від Igor Springer
5 security issues in Ruby on Rails apps from real life — автор на основі власного досвіду перераховує п'ять вразливостей в Ruby on Rails додатках.
How to log HTTParty requests — як реєструвати всі запити, що передаються гемом httparty .
`ActiveSupport::StringInquirer` magic — як і навіщо використовувати клас ActiveSupport::StringInquirer.
— розбираємося з класом ActiveSupport::ArrayInquirer.
Добірка від Jason Swett
Exactly What Makes «Bad» Code Bad? — автор ділиться своєю думкою про те, що таке поганий код і чому.
How to See Your Feature Specs Run in the Browser — як запускати feature tests у браузері.
Factories and Fixtures in Rails — огляд трьох способів генерації тестових даних в додатках на Rails.
Добірка від Josef Strzibny
Debugging silently failing compilation aka Webpacker can't find application.js in public/packs/manifest.json — автор ділиться досвідом налагодження помилок компіляції при використанні Webpacker.
Building auto login for fast Rails development with Sorcery — простий спосіб прискорити процес розробки ПЗ за допомогою автоматичної аутентифікації.
Добірка від Mehdi Farsi
5 Ruby Tips You Probably don't Know — автор описує п'ять можливостей мови Ruby, про яких багато розробники не знають.
The Evolution of Ruby Strings from 1.8 to 2.5 — освіжіть в пам'яті, які зміни відбулися з класом String від версії Ruby 1.8 до 2.5.
Why the Ruby community encourages Duck Typing — автор ділиться думкою, чому співтовариство Ruby заохочує duck typing.
The short guide to learning how Classes work in Ruby — цей короткий гайд допоможе новачкам вивчити, як працюють класи в мові Ruby.
Добірка від reinteractive
How to structure JavaScript code when using AJAX in Rails — два способи структурувати JavaScript-код при використанні AJAX в додатках на Rails.
To Microservice or Monolith, that is the question — автор ділиться думками про вибір архітектури.
Добірка від RubyGuides
How to Check If a Variable is Defined in Ruby — як перевірити, ініціалізований мінлива в Ruby.
Understanding The Differences Between Puts, Print & P — освіжаємо в пам'яті, в чому різниця між трьома способами виведення даних в Ruby.
How to Use RSpec Mocks (Step-By-Step Tutorial) — покроковий туторіал про використання mocks в тест-фреймворку RSpec.
How to Use the Ruby Grep Method (With Examples) — автор показує, як використовувати метод grep Ruby з докладними прикладами.
How to Read & Parse CSV Files With Ruby — як зчитувати і записувати файли csv, а також які існують конвертери і геми для роботи з ними.
How to Use Ruby Any, All None & One — детальний розбір чотирьох методів Перечіслімого.
What is Ruby on Rails? — оглядова стаття про Ruby on Rails: філософія фреймворку, причини стати Rails-розробником і як почати вивчення Rails.
How to Use The Ruby Map Method (With Examples) — як використовувати метод map в Ruby.
Understanding Method Visibility In Ruby — в чому різниця між public, private, і protected методами в Ruby.
How To Delegate Methods in Ruby — автор показує кілька способів делегування методів в Ruby.
Добірка від thoughtbot
Tab completion in GNU Readline: Ruby edition — як реалізувати автозаповнення командного рядка за допомогою GNU Readline в Ruby.
Writing Less Error-Prone Code — автор ділиться порадами, як писати більш якісний код.
Туторіали
How to Build Chat into Ruby on Rails Applications — як реалізувати live chat у додатку на Ruby on Rails.
Simplifying internal validations using Dry-Validation — вчимося відокремлювати валідацію даних від бізнес-логіки за допомогою гема dry-validation .
How we halved our memory consumption in Rails with jemalloc — автор показує, як зменшити використання пам'яті в Rails-додатку за допомогою менеджера пам'яті jemalloc.
Scale Out Multi-Tenant Apps based on Ruby on Rails — інструкція з горизонтального масштабування багатокористувацьких додатків на Ruby on Rails.
Using Ruby on Rails 5.2 Active Storage — як налаштувати Active Storage при роботі з версією 5.2 фреймворку Ruby on Rails.
How to Use Pattern Repository with Active Record — автор показує, як використовувати pattern repository при роботі з Active Record в додатках на Rails.
How to: Execute RSpec in parallel locally — як забезпечити паралельне виконання тестів RSpec в локальному оточенні.
Launching Your Own Ruby Gem — Part 1: Build It — перша частина докладної інструкції, як створити гем.
Testing Ruby's CGI — як тестувати CGI в Ruby.
Ruby async await — автор розповідає, як реалізувати функцію async await в Ruby.
Custom URLs in Ruby on Rails: How you can use descriptive slugs instead of IDs — як реалізувати настроювані URL в додатку на Rails.
Ruby and Rack: The beginning — розбираємося, як Rack взаємодіє з веб-серверами Webrick, Mongrel, Thin і Puma.
Handling exceptions in Rails API applications — автор ділиться досвідом обробки виключень в Rails API додатках.
How to use HMAC-SHA256 to connect to a REST API like Ticketmatic — коротка інструкція, як з'єднатися з REST API, якщо використовується алгоритм HMAC-SHA256.
Цикл статей про створення data API за допомогою Ruby on Rails 5:
- Building a data API with Ruby on Rails 5: Part 1 — Setup and Routing
- Data Aggregation API in Rails 5: Part 2 — Testing Philosophies Approach and
Релізи
Ruby 2.5.3 — вийшла версія 2.5.3 мови Ruby.
Hanami 1.3.0 — представлена версія 1.3.0 популярного фреймворку Hanami.
Ruby Gems
minitest-mock_expectations — гем для підтвердження виклику методу при роботі з фреймворком Minitest.
Salus — інструмент для координації роботи сканерів вразливостей.
Enkrip — гем шифрує і дешифрує атрибути моделей Active Record.
OurPC — експериментальна реалізація gRPC клієнта і сервера.
Події
Ruby Meditation #24 — 3 листопада в Києві пройде Ruby Meditation #24. Теми включають domain-driven design в Rails, runtime model в Ruby, оптимізацію Capybara.
Конференції
RubyConf 2018 — з 13 по 15 листопада в Лос-Анджелесі (США) проходить конференція RubyConf 2018; конференцію відкриває творець мови Ruby Yukihiro 'Matz' Matsumoto.
Послухати
The Bike Shed
172: What I Believe About Software — ведучий і гість подкасту обговорюють основні складові процесу розробки ПЗ: що таке story points, коли робити рефакторинг і code review і т. д.
175: Tell Me When it's Real — учасники дискусії обговорюють новітні тренди в світі веб-розробки.
Ruby Rogues
— учасники дискусії обговорюють, чи варто створювати нові інструменти або ж купувати сторонні рішення.
RR 383: «Rbspy: A New(ish) Ruby Profiler!» with Julia Evans — головна тема подкасту — профайлер Ruby Spy.
RR 384: «Sonic Pi» with Sam Aaron — в гостях у провідних Sam Aaron — розробник середовища програмування для створення музики Sonic Pi.
RR 385: «Ruby/Rails Testing» with Jason Swett — в гостях у Ruby Rogues Jason Swett — провідний подкасту The Ruby Testing.
RR 386: Web Console Internals with Genadi Samokovarov — основна тема подкасту — використання веб-консолі для налагодження додатків на Ruby.
RWpod
- 39 випуск 06 сезону. Upgrading GitHub from Rails 3.2 to 5.2, Trix 1.0.0, SystemJS 2.0.0, Browserino, TurtleDB, Tabulator та інше
- 40 випуск 06 сезону. Ruby 2.6 adds RubyVM::AST module, Action Text for Rails 6, Hacktoberfest 2018, Falcon, Cogear.JS та інше
- 41 випуск 06 сезону. The Evolution of Ruby Strings, JavaScript Visualizer, FaaStRuby, Favicon Checker, ProbaClick та інше
- 42 випуск 06 сезону. Upcase is Now Free, ActiveSupport::StringInquirer magic, Spok, Evergreen, Omi, Colorblindly та інше
- 43 випуск 06 сезону. Hanami v1.3.0, Node v11.0.0, Storybook 4.0, React v16.6.0, Enkrip, IronDB, Lazy-brush та інше
Ruby on Rails Podcast
246: Trust Arts, Trust Rails with Patrick FitzGerald and Danielle Greaves — учасники дискусії обговорюють свої улюблені аспекти фреймворку Ruby on Rails.
247: Introducing Action Text for Rails 6 with Javan Makhmali — випуск присвячений фреймворку Action Text, який увійде до складу Ruby on Rails 6.
248: Diving Into Ruby Weekly with Peter Cooper — ведуча подкасту розмовляє з Peter Cooper — редактором розсилки Ruby Weekly.
The Ruby Testing Podcast
013 — The Balance Between Testing and Feature Development with Dave Kimura — як знайти баланс між написанням функціонального коду і тестів.
014 — Chris Oliver, Creator of GoRails — ведучий і гість подкасту обговорюють безліч тем, в тому числі integration та unit tests, а також тест-фреймворк Cucumber.
016 — Fast Tests with Vladimir Dementyev — учасники дискусії обговорюють, як прискорити проходження тестів на Ruby.
Remote Ruby
What else can Rails add by default? — учасники подкасту обговорюють оновлення GitHub до Rails 5.2, фреймворк Action Text, необхідність додати повнофункціональну вбудовану аутентифікацію в Rails.
The Yak Shave
4: Folks are in a Stink — ведучий і гість подкасту обговорюють важливість документації в процесі розробки ПЗ, а також діляться радами по роботі з базами даних, API і т. п.
5: A Series of Anecdotes — учасники дискусії обговорюють важливість зворотного зв'язку (feedback) при розробці open source software.
6: The Podcast After the Last Podcast — послухайте, що таке WebAssembly і як його можна використовувати у веб-розробці.
Подивитися
Alpha preview: Action Text for Rails 6 — творець Ruby on Rails David Heinemeier Hansson розповідає про фреймворку Action Text, який увійде до складу Ruby on Rails 6.
Жовтневі випуски GoRails , у яких ведучий продовжує серії скрінкасти про nested comments і ElasticSearch, показує, як створити додаток на основі Slack slash-команд, а також як використовувати гем name_of_person :
- Deleting Comments In Nested Threads
- Reddit style comment thread pagination
- Handling First & Last Name with the gem name_of_person
- How to Build a Slack Slash Command App with Rails
- Search Filters with ElasticSearch Aggregations
Підбірка платних скрінкасти від Drifting Ruby у жовтні:
- #154 Service Objects for API Interactions with Twilio
- #155 Friend Requests From Scratch
- #156 Friend Requests Views, Controllers, and Model Methods
- #157 Nested Comments from Scratch
Випуски платних скрінкасти від Ruby Tapas за жовтень:
- JSON API in Rails — Part 1
- JSON API in Rails — Part 2
- Smaller Objects, Faster Code
- Github Flow Automation
- From Math to Code
Щодо тем/матеріалів/івентів, які варто додати в наступний випуск дайджесту, пишіть в коментарях або на [email protected] . Дякуємо за допомогу в підготовці дайджесту команді RubyGarage.
? Попередній випуск: Ruby дайджест #22
Опубліковано: 03/11/18 @ 11:00
Розділ Різне
Рекомендуємо:
Туторіал з налаштування Rails-додатків на Amazon EC2 з Chef. Частина 3
Як валідувати продуктові гіпотези. Досвід Google, MacPaw і SendPulse
Финстрип за Жовтень 2018, інфо-сайти. Вперше 100К+
Чому Java все ще не торт. Yet
DOU Hobby: Мотоподорожі — незамінний інструмент для звільнення мозку від зайвого