Ruby/Rails дайджест #26: реліз Ruby 2.6.1 і Hanami 2.0.0.alpha1, представлена перша бета-версія фреймворку Ruby on Rails 6
Всім привіт!
Почнемо з того, що спільнота Ruby активно обговорює першу бета-версію фреймворку Rails 6 і його нові фічі. Команда розробників CRuby викотила патч-версію Ruby 2.6.1, в якій виправлено серйозний баг, виявлений у Ruby 2.6.0. Також в лютому закривається прийом доповідей на конференції RubyConfBY, RubyDay і EuRuKo.
Тренди в співтоваристві Ruby
- DHH представив бета-версію фреймворку Ruby on Rails 6.0.
- Matz висловився з приводу надмірної прагнення розробників внести зміни в Ruby.
20+ years ago, a guy who disagree with me copied Ruby repo & replaced my name copyright in notices. He wanted his version of the lang. Technically it was license violation but I didn't say anything. I was curious about his ideas. No move for months. The repo disappeared. 1/
- DHH анонсував , що Webpacker буде компілятором за замовчуванням в Rails 6.
- Команда CRuby викотила патч-версію Ruby 2.6.1 раніше запланованого терміну, щоб виправити баг, пов'язаний з Net::Protocol.
Релізи
Rails 6.0.0 beta1 — перша бета-версія фреймворку Ruby on Rails 6.0.
Ruby 2.6.1 — наспів патч Ruby 2.6 — зустрічайте версію 2.6.1.
Hanami 2.0.0.alpha1 — реліз першої альфа-версії фреймворку Hanami.
Hanami 1.3.1 — нова стабільна версія Hanami.
Passenger 6.0.1 — команда розробників Phusion викотила версію 6.0.1 популярного сервера додатків Passenger.
Bundler 2.0.1 — патч-оновлення другої версії менеджера пакетів Bundler.
Почитати
Exploring a critical Net::Protocol issue in Ruby 2.6.0p0 and how it can lead to a security problem — автор розбирається в критичній помилці при використанні Net::Protocol в Ruby 2.6.0 (спойлер: Ruby 2.6.1 цей баг вже виправлений).
Rails handles large number of nested routes better than Sinatra — порівняння продуктивності Rails і Sinatra в обробці вкладених маршрутів.
The Ruby Toolbox — оновився популярний каталог Ruby гемов.
Ruby & AWS Lambda — автор ділиться враженнями про використання Ruby на сервісі AWS Lambda.
Building a Service-oriented Architecture with and Rails Kafka — побудова програми з SOA-архітектурою за допомогою Rails і платформи Kafka.
What's new in Ruby 2.6 — огляд нововведень в Ruby 2.6.
42 performance tips for Ruby on Rails — корисні поради, як збільшити продуктивність Rails-додатків.
GraphQL file upload with Shrine — як реалізувати функцію завантаження файлів в GraphQL за допомогою інструменту Shrine.
Ruby 2.6 Ubuntu packages — пакети з Ruby 2.6 для операційної системи Ubuntu.
The simplicity and power of Ruby Struct — докладно про класі Struct в Ruby.
Active Admin Tips and Performance Optimizations for Rails Apps — поради щодо використання фреймворку Active Admin в Rails-додатках.
Introducing dry-schema — зустрічайте новий гем dry-schema.
Why Ruby doesn't have a Boolean class — чому в Ruby відсутня клас Boolean.
How to Tell the Difference Between a Default and Provided a Value for Optional Arguments in Ruby? — як використовувати приватні константи для передачі опціональних аргументів на Ruby.
Did you know that you can use Bundler without Gemfile? — як використовувати менеджер пакетів Bundler без Gemfile.
How to Reduce Test Interference in Minitest — як знизити ймовірність випадкових падінь тестів при роботі з фреймворком Minitest.
Rails Routes, HTTP Methods and SQL Queries — розбираємося з маршрутизацією в Ruby on Rails.
«!» and «?»: Understanding One of Ruby's Coolest Naming Conventions — корисний для новачків гайд по використанню знаків «!» та «?» в іменуванні методів.
Here to stay — Analyzing RubyGems stats for 2018 — статистика по Ruby гемам від компанії Infinum за 2018 рік.
Ruby Interpreters: What You Need to Know — огляд відмінностей у Ruby-інтерпретаторів.
How to synchronize a directory between two remote hosts with rsync — використовуємо бібліотеку rsync для синхронізації директорії між хостами.
How ActionCable broke Puma — які проблеми виникають при використанні системного виклику select при збільшенні кількості активних сполук у ActionCable в зв'язці з Puma.
Launching Your Own Ruby Gem (part 2): Popularizing it within the Ruby Community — друга частина інструкції, як створити гем на Ruby.
TensorStream: Bringing Machine Learning to Ruby — машинне навчання на Ruby: знайомимося з фреймворком TensorStream.
Rails needs Active Deployment — автор висловлює свою точку зору про складнощі з розгортанням додатків на production в Rails.
3 ActiveRecord Mistakes That Slow Down Rails Apps: Count, Where and Present — три помилки при використанні ActiveRecord, які можуть сповільнити програми на Rails.
Partial application in Ruby — що таке часткове застосування в Ruby і як його використовувати.
Crafting user notifications in Rails with Active Delivery — інструкція, як реалізувати функцію оповіщення в Rails-додатках за допомогою гема Active Delivery.
A Modern Web Application With Rails — автор ділиться порадами зі створення сучасного програми на Rails.
What i've learned by doing The Gilded Rose Kata (4 refactoring tips) — поради по рефакторінгу на основі підходу The Gilded Rose Kata.
Working With Legacy Code — How Refactoring Let Us Escape The Black Hole — автори діляться досвідом рефакторінгу legacy-коду.
ValueSemantics—A Gem for Making Value Classes — як використовувати гем ValueSemantics в додатку для написання Callable Objects.
Добірка від Andy Croll
Use Multiple Migrations When Adding Database Constraints — використання міграцій при додаванні constraint в структуру бази даних.
Replace Timecop With Rails' Time Helpers in RSpec — вчимося використовувати вбудовані в Rails Time Helpers замість бібліотеки timecop.
Добірка від Appfolio Engineering
How Fast is the Released Ruby 2.6.0? — дивимося на показники продуктивності Ruby 2.6.0.
A Short History of Speed Rails «Hello, World» — як створюються бенчмарки для різних версій Rails.
Добірка від AppSignal
Bindings Lexical and Scope in Ruby — що таке bindings і lexical scopes в Ruby.
An instrumental intro to GraphQL with Ruby — автор показує, як використовувати GraphQL в додатку на Ruby.
Добірка від BigBinary
Target Tracking Policy for Auto Scaling — як налаштувати Auto Scaling в сервісі AWS EC2 за допомогою Target Tracking Policy.
Rails 6 adds ActiveRecord::Relation#pick — огляд методу Relation#pick в Ruby on Rails 6.
Replacing PhantomJS with headless Chrome — автор показує, як використовувати headless Chrome замість PhantomJS.
Добірка від BoltOps
Serverless Ruby Cron Jobs Tutorial: Route53 Backup — в цей туториале автор показує, як створити cron-завдання за допомогою фреймворку Jets.
Serverless Slack Commands with Ruby: Fun with AWS Image Recognition — як створити command додаток для Slack на Ruby, використовуючи фреймворк Jets.
Build an API with the Jets Ruby Serverless Framework — коротка інструкція, як створити API на AWS Lambda.
Добірка від Drifting Ruby
Default Ruby on Rails Options — простий спосіб прискорити конфігурацію програми на Ruby on Rails.
Ruby on Rails 6.0 Beta 1 Deprecations — список змін у компонентах, які більше не підтримуються в Ruby on Rails 6 beta 1.
Добірка від Drivy
Lambda composition in Ruby 2.6 — як створювати lambda-функції в Ruby 2.6.
Ruby tricks for junior developers — поради про Ruby для новачків.
Добірка від Igor Springer
Common mistakes that cause Ruby on Rails apps outages — найбільш часті помилки, із-за яких падають Rails-додатки.
Is `Array` the only option for storing elements in Ruby? — які структури даних для списків значень існують в Ruby.
Not-so-private constants in Ruby — детальний розбір приватних констант в Ruby.
Добірка від Jason Charnes
Using Ruby in 2019 — автор ділиться думкою про стан екосистеми Ruby.
Run.rb — інструмент для компілювання Ruby-коду в WebAssembly.
Добірка від Jason Swett
The Difference Between Integration Tests and Controller Tests in Rails — в чому різниця між integration і controller тестами.
RSpec Mocks and Stubs in Plain English — простими словами про mocks і stubs в RSpec.
Добірка від Mehdi Farsi
4 interesting examples using operator precedence in Ruby — освіжаємо в пам'яті пріоритет операторів в Ruby.
Understanding the Eigenclass in less than 5 minutes — що таке Eigenclass в Ruby.
Гайд по створенню копії об'єкта в Ruby:
The Complete Guide to Create a Copy of an Object in Ruby: Part I
The Complete Guide to Create a Copy of an Object in Ruby: Part II
Добірка від Naturaily
How to remove old database migrations in Ruby on Rails — як прибрати старі версії міграцій бази даних в програмі на Rails.
Chain of responsibility pattern in Ruby on Rails — приклад реалізації шаблону проектування Chain of responsibility на Ruby.
Добірка від Ombu Labs
Notes from The Complete Guide to Rails Performance's Workshop — автор ділиться враженнями від воркшопу, присвяченого продуктивності Ruby on Rails.
Consuming SendGrid and Twilio webhooks in Rails — як відслідковувати статуси відправки Email та SMS повідомлень при використанні сервісів SendGrid і Twilio.
Добірка від RubyGuides
What is A Matrix & How to Use It in Ruby? — спосіб створення матриці в Ruby за допомогою гема Daru.
How to Control a Web Browser From Ruby With Watir — вчимося керувати веб-браузером з Ruby за допомогою Watir.
Helpful Math Concepts For Ruby Developers — які математичні операції треба знати Ruby-розробникам.
What is Dry-rb? — що таке стек гемов dry-rb і які переваги дає його використання.
Добірка від RubyPlus
Unix Signal Processing in Ruby — автор показує, як обробляти Unix сигнали в Ruby.
Tracking Email Open in Rails — як реалізувати функцію відстеження відкриття електронних листів в додатках на Rails.
Ruby Bundler Setup — автор ділиться досвідом конфігурації гема Bundler.
Добірка від Tomas Valent
How to upload remote file from url with ActiveStorage Rails — як реалізувати функцію завантаження файлів через URL за допомогою Active Storage.
Exporting and Importing large amount of data in Rails — автор показує, як експортувати та імпортувати великі обсяги даних в додатках на Rails.
Туторіали
Integrate Rails Application with React Using Webpacker Gem — як інтегрувати React в Ruby on Rails за допомогою бібліотеки Webpacker.
101: Actual refactoring — real life story — автор на прикладі коду реального проекту показує, як виконати рефакторинг коду.
Ruby Bindings and Extensions — детальна інструкція, як інтегрувати бібліотеку на C в додаток на Ruby за допомогою FFI.
How to turn my ActiveRecord migrations asynchronous? — автор описує, як асинхронно зробити міграції в ActiveRecord за допомогою створеного ним гема RailsAsyncMigrations.
Using OAuth for a simple command line script to access google's data — як написати простий CLI-скрипт на основі OAuth для доступу до даних облікового запису Google.
How to use AWS Secrets Manager in Ruby on Rails — вчимося використовувати сервіс AWS Secrets Manager в Ruby on Rails додатках.
Server Side for Rendering React + Apollo GraphQL Client — інструкція, як налаштувати серверний рендеринг на React за допомогою інструменту Hypernova.
Performance profiling for your Rails App with rack-mini-profiler — використовуємо гем rack-mini-profiler, щоб дізнатися, які частини вашого застосування на Rails потребують оптимізації.
Extracting Text From Images Using Ruby — отримання тексту із зображень, використовуючи Ruby.
Faster CSV downloads using Enumerator — інструкція, як прискорити завантаження файлів csv, використовуючи клас Enumerator в Ruby.
Геми
Zeitwerk — орієнтований на багатопоточне виконання code loader для Ruby.
macinbox — бібліотека запускає образ MacOS всередині Vagrant.
jb — проста і продуктивна альтернатива jbuilder.
Jets — фреймворк для побудови serverless додатків.
Події
Ruby Meditation #26 — не пропустіть Ruby Meditation #26, яка пройде 16 лютого в Києві.
Відкрита реєстрація доповідей на конференції:
- RubyConfBY 2019 — до 17 лютого.
- RubyDay 2019 — до 20 лютого.
- EuRuKo'19 до 28 лютого.
Послухати
The Bike Shed
- 184: Fun, Interesting, and I wouldn't Recommend It — провідний подкасту і гість обговорюють багато різних тем, у тому числі розвиток мови Ruby, використання JWT, RabbitMQ і т. д.
- 185: The Transactional Fallacy — гість випуску — Avdi Grimm, відомий програміст і ведучий скрінкасти Ruby Tapas.
Ruby Rogues
- RR 395: Ruby in the Forbidden Land with Nathan Ruehs
- RR 396: GraphQL at Product Hunt with Radoslav Stankov
- RR 397: Oracle with Karthik Gaekwad
RWpod
- 01 випуск 07 сезону. Ruby 2.6.0 Released, Bundler 2, TensorStream, How To Learn CSS, FBT, Readlint, Bandersnatch Life та інше
- 02 випуск 07 сезону. Exploring a critical Net::Protocol issue in Ruby 2.6.0p0, Rubyoshka, Anime.js, React Kawaii та інше
- 03 випуск 07 сезону. Kramdown 2.0.0, Dynamic ActiveRecord columns, Amplify, Shiny, NES-style CSS Framework та інше
- 04 випуск 07 сезону. Run.rb, How ActionCable broke Puma, Node worker threads, The Great Divide, Hotkey Behavior, Flexbox ninja та інше
Ruby on Rails Podcast
- 255: Submit Your Railsconf CFP with Marty Haught — подкаст присвячений конференції RailsConf 2019, яка відбудеться 30 квітня — 2 травня в Міннеаполісі (США).
- 256: Empowering Founders with Emily Wazlak from Shine Registry — гість подкасту ділиться досвідом підстави стартапу на RoR.
- 257: Apprenticing at thoughtbot with Sarah Dawson — випуск присвячений стажування в компанії thoughtbot і різниці між junior - і senior-розробниками.
Remote Ruby
- Joined by Jason Swett — ведучий і гість подкасту обговорюють тестування додатків на Ruby і роботу з legacy-кодом.
- Joined by Luca Guidi — випуск Remote Ruby з творцем Ruby-фреймворку Hanami.
- Personal Life, Turbolinks Android 1.x Deprecation, & Autoloading — учасники дискусії зачіпають багато різних тем, у тому числі багатопоточність в Ruby і гем suggest_rb.
- Joined by Eileen Uchitelle — історія Eileen Uchitelle — одного з провідних розробників у Rails Core Team.
Подивитися
Ruby from Scratch 2019 — відеоуроки з основ Ruby для новачків.
Січневі випуски GoRails , у яких ведучий показує, як реалізувати функцію автозбереження чернеток у додатку на Rails, а також продовжує цикл скрінкасти, присвячених розгортання production-оточення:
- Security Hardening Servers with Fail2Ban
- Server Administration with Cockpit
- Autosave Draft Records — Part 1
- Autosave Draft Records — Part 2
Підбірка платних скрінкасти від Drifting Ruby у січні , у яких ведучий показує, як використовувати фреймворк Action Text в додатку на Rails 5.2, як керувати сесіями в терміналі, а також як працювати з фреймворком VueJS в Rails:
- #167 Using Action Text in a Rails 5.2 Application
- #168 Getting Started with VueJS
- #169 Rails Scaffold with VueJS
- #170 Managing Terminal Sessions
Січневі випуски платних скрінкасти від Ruby Tapas , які навчать вас безлічі корисних речей, в тому числі як працювати з асинхронним кодом, як використовувати метод yield_self і як реалізувати REPL:
- Episode #473: Contextual Identity Part 2
- Episode #558: yield_self
- Episode #559: Full Utilization
- Episode #560: API Exploration
- Episode #561: Building a REPL
Щодо тем/матеріалів/івентів, які варто додати в наступний випуск дайджесту, пишіть в коментарях або на [email protected] . Дякуємо за допомогу в підготовці дайджесту команді RubyGarage .
? Попередній випуск: Ruby дайджест #25
Опубліковано: 02/02/19 @ 11:00
Розділ Різне
Рекомендуємо:
Визначаємо вартість декоратора в Golang
Финстрип за Січень 2019, інфо-сайти. Місяць приніс відкат майже в 2 рази
React Hooks — огляд можливостей нового API
Розробка реактивних та розподілених систем з Vert.x
Токсичний HR: дії, які отруюють команду