Ruby/Rails дайджест #27: другий реліз beta-версії Ruby on Rails 6, оновлення JRuby, огляд потенційних фіч в Ruby 2.7
Всім привіт!
Почнемо з того, що спільнота Ruby продовжує роботу над Ruby on Rails 6 — в лютому вийшла друга бета-версія з новим code loader, який отримав назву Zeitwerk, а до кінця квітня очікується реліз стабільної версії фреймворка. Також до кінця березня відкрита реєстрація доповідей на конференцію RubyC, яка пройде у вересні в Києві.
Тренди в співтоваристві Ruby
- 24 лютого мові Ruby виповнилося 26 років
Ruby was named Ruby on this day, February 24th, 1993. Happy 26th birthday, Ruby!
Yukihiro Matsumoto- Співзасновник Discourse зазначив 7% зменшення часу відповідей і значне зниження споживання пам'яті після переходу на Ruby 2.6.1
Looks like Ruby 2.6.1 is going to give @a discourse 7% performance for improvement median request time and a large memory saving! ... great job @yukihiro_matz/@_ko1/@k0kubun and team!
Sam Saffron- DHH оголосив, що Basecamp і Shopify вже використовують другу бета-версію Ruby on Rails 6 в продакшені
Rails 6.0 beta2 has been released! It includes the exciting new code loader for Ruby called Zeitwork, as well as a bunch of other fixes and tweaks. Already running in production for both @basecamp and @shopify ??
DHHРелізи
Rails 6.0.0 beta2 — вийшла друга бета-версія фреймворку Ruby on Rails.
JRuby 9.2.6.0 — оновлення другий по популярності імплементації мови Ruby.
Passenger 6.0.2 — команда Fusion викотила оновлення сервера додатків Passenger.
Spree 3.7.0 — новий реліз open source движка для створення ecommerce-додатків.
Почитати
Introducing Transaction Support in aws-record — гем aws-record тепер підтримує транзакції.
Dream Code First — автор ділиться думкою, чому важливо дотримуватися підходу test-driven development (TDD).
From JavaScript to Ruby: A few of my favourite features — розробник, який перейшов з JavaScript на Ruby, ділиться думкою про найбільш примітних фичах Ruby.
Foreign key Resolve constraint conflict while copying data using topological sort — автор на основі власного досвіду розповідає, як вирішити проблеми з зовнішніми ключами за допомогою топологічної сортування.
Preload, Eager Load and Includes Joins in Ruby on Rails — в чому різниця між preload, eager load, includes і joins в Ruby.
Early Hints and HTTP/2 Push with Falcon — як реалізована технологія HTTP/2 Push веб-сервері Falcon.
Make Delegated Methods in Private Rails — автор показує, як зробити делеговані методи приватними в Rails.
Playing with Ruby Threads and Queues — як використовувати потоки і черги в Ruby.
Rescue from errors with a grace — поради по обробці помилок в Rails.
Patterns for asynchronous read models in infrastructure order without guarantee — шаблони реалізації асинхронних моделей.
Register Transfer Language for CRuby — плюси і мінуси RTL для CRuby.
Form validations with HTML5 and modern Rails — як реалізувати валідацію форм в Ruby on Rails.
Messages on Rails Part 1 — Introduction to Kafka and RabbitMQ — введення у використання черг повідомлень на прикладі Kafka і меседж-брокера RabbitMQ.
Підбірка матеріалів про зміни в Ruby on Rails 6:
Для новачків
A Collection of Tips and Tricks For The Ruby Language — корисні поради про програмування Ruby.
7 reasons why learning SQL is still important for Rails developers — чому знання SQL важливо для розробників на Ruby on Rails.
The Power of Ruby Structs — детальний розбір класу Struct в Ruby.
Inheritance on-the-fly with Ruby on Rails — гайд по міграції баз даних і використання класу ActiveRecord::Migration.
Ruby Comments Explained — як працювати з коментарями в Ruby.
What is Rake in Ruby & How to Use it — що таке Rake і як його правильно використовувати в розробці на Ruby.
Which Ruby IDE You Should Use? — який текстовий редактор варто вибрати для розробки на Ruby.
7 Interesting Ruby Code Examples — цікаві приклади коду, які допоможуть вам у роботі.
How to Write Your Own Classes in Ruby — вчимося створювати класи в Ruby.
Understanding Boolean Values in Ruby — як працювати з булевими операторами значеннями в Ruby.
Добірка від Andy Croll
Be Careful Assigning to has_one Relations — автор на прикладі показує, чому варто обережно використовувати зв'язок has_one.
Secure Your Rails Staging Environment with HTTP Basic Authentication — чому потрібно захистити ваше staging-оточення за допомогою базової HTTP аутентифікації.
Добірка від Appfolio Engineering
Test Ruby's Speed with and Rails Rack «Hello, World» Apps — простий бенчмарк продуктивності Rails і Rack.
Microbenchmarks vs Macrobenchmarks (i.e. What's a Microbenchmark?) — автор ділиться думкою про те, що таке мікро - і макробенчмарки.
Добірка від AppSignal
Розплутування Classes, Instances and Metaclasses in Ruby — освіжаємо в пам'яті, що таке метаклассы в Ruby і як їх використовувати.
Diving into Ruby's #dup and #clone — в чому різниця між методами #dup і #clone в Ruby.
Добірка від BoltOps
SQS Events and AWS Lambda with Ruby on Jets — автор показує, як підключити SQS events до AWS Lambda.
Введення у фреймворк Jets:
- AWS Lambda Function: Jets AWS Introduction Series Part 1
- API Gateway: Jets AWS Introduction Series Part 2
- CloudWatch Event Rule: Jets AWS Introduction Series Part 3
Добірка від Brandon Weaver
Ruby 2.7 — Перечіслімого#tally — автор показує, як використовувати метод Перечіслімого#tally в Ruby 2.7.
Що таке TracePoint в Ruby і як його використовувати в додатках:
- Exploring TracePoint in Ruby — Part One — Example Code
- Exploring TracePoint in Ruby — Part Two — Events
Добірка від Honeybadger
Avoiding Junk-Drawer Classes in Ruby — як уникнути створення так званих junk-drawer класів при створенні додатків на Ruby.
Going deep on UUIDs and ULIDs — детальний розбір стандартів ідентифікації UUID і ULID.
Добірка від Jason Swett
Page Objects in Rails — що таке page objects і як вони допомагають тестувати програми на Rails.
How I write characterization tests — автор розповідає, що таке characterization tests, і на прикладах показує, як їх використовувати.
Добірка від Mehdi Farsi
Using the Find module to count the LOC of a Rails application — освіжаємо в пам'яті, як використовувати модуль Find в Ruby.
How network programming is represented in Ruby — як реалізовано мережеве програмування Ruby.
Добірка від Ombu Labs
Three Useful Data Migration Patterns for Rails — корисні шаблони міграцій даних, які ви можете використовувати у ActiveRecord.
Refactoring with Design Patterns — The State Pattern — докладно про шаблон проектування State.
Добірка від reinteractive
Professional Git Workflow — автор розповідає про свій підхід до роботи з Git.
Have you serviced your Ruby on Rails Application? — на що потрібно звернути увагу при підтримці додатків на Ruby on Rails.
Добірка від Rewind
Feature Flagging Ruby in Using EightBall — використовуємо feature flags за допомогою гема EightBall.
Controlling Sidekiq Workers on AWS with Fargate and SSM Commands — корисна інструкція з управління Sidekiq-воркерами в додатку на AWS.
How We Keep Your Data Secure — як Rewind компанія забезпечує безпеку даних своїх клієнтів.
Добірка від RubyPlus
Understanding Service Control with systemd — автор показує, як управляти сервісами за допомогою systemd при завантаженні ОС.
Using Foreman to Manage Profile Based Applications — використання Foreman для управління profile based додатками.
Using racecar to Consume Kafka messages in Rails — як використовувати фреймворк Racecar для обміну повідомленнями між брокером Kafka і додатком на Rails.
Running Rails Test Cases in a Docker Container — коротка інструкція по запуску тест-кейсів для Rails в контейнері Docker.
How to Run a Shell Script inside a Docker Container — використання shell script в контейнері Docker.
Ruby and Nokogiri Gem Compatibility — до питання про сумісність гема Nokogiri з різними версіями Ruby.
Using delivery_boy gem to Publish Messages to Kafka — як використовувати гем delivery_boy для передачі повідомлень брокеру Kafka.
ActionText in Rails 6 — інструкція, як використовувати фреймворк ActionText в Rails 6.
Добірка від Scott Watermasysk
Simplifying Shorti's Api — історія оптимізації гема Shorti.
Better Jekyll Excerpts — спрощення роботи з витягами в Jekyll.
Туторіали
How to Protect Individual Resources with Passwords — як реалізувати захист ресурсів паролем.
Refactoring a large case statement — автор ділиться досвідом рефакторінгу великих case statement.
DIY — Create Your Own Rails Generator — інструкція зі створення генераторів в Rails.
— тестування JavaScript-код прямо з Ruby.
Speed up Docker image builds with prebuilt base images — автор ділиться досвідом, як прискорити створення збірок образів Docker програми на Ruby.
The 10-minute Rails Pub/Sub — як створити додаток на Rails, використовуючи publish/subscribe замість model callbacks.
Debugging Sidekiq Workers Using pry-remote on Rails Applications — інструкція по налагодженню Sidekiq-воркеров за допомогою гема pry-remote.
Building A Simple Landing Page With FaaStRuby Functions — покроковий туторіал по створенню serverless-додатки на платформі FaaStRuby.
Цикл статей про створення serverless-додатки на AWS Lambda за допомогою Ruby:
- How to create an Aurora Serverless Cluster using the Console AWS
- Build, Package, and Deploy an AWS Lambda using the Ruby Runtime
Геми
TraceSpy — обгортка навколо TracePoint.
Heaven's Door — генератор тест-сценаріїв для Capybara.
Semantic Logger — повнофункціональний фреймворк для логування.
Modulation — гем для управління залежностями в додатках на Ruby.
Конференції
wroc_love.rb 2019 — з 22 по 24 березня у польському Вроцлаві відбудеться щорічна конференція wroc_love.rb.
Також відкрита реєстрація доповідей на конференцію RubyC 14-15 вересня в Києві.
Послухати
The Bike Shed
- 186: let's Duplicate Stuff — провідний подкасту розмовляє з Daniel Colson — розробником компанії thoughtbot, який займається підтримкою інструменту factory_bot.
- 187: Convincing People Not to Build Software — гість подкасту Matthew Sumner розповідає про свій новий проект.
- 188: A Function by Any Other Name — учасники дискусії обговорюють duplication, принцип DRY та інші цікаві теми.
Ruby Rogues
- RR 398: Productivity with Mani Vaya
- RR 399: Jets Ruby Serverless Framework with Tung Nguyen
- RR 400: Celebrating a Milestone — Ruby Rogues 400 Episode
- RR 401: Environment Variables & Ruby with Jesus Castello
RWpod
- 05 випуск 07 сезону. Ruby 2.6.1, Hanami v2.0.0.alpha1, CSSans Pro, Neutralinojs, Notable, Finance.js та інше
- 06 випуск 07 сезону. Homebrew 2.0.0, React v16.8, pret-рівня for Ruby, Jets, Tweakpane, MiniSearch, X-spreadsheet та інше
- 07 випуск 07 сезону. Rails 6 unnoticed features, ReasonML vs TypeScript, Linaria 1.0, Webp Wasm, Third Party Web та інше
- 08 випуск 07 сезону. Register Transfer Language for CRuby, ECMAScript 2019, NSFW JS, Try GraphQL, Cleave.js та інше
Ruby on Rails Podcast
- 259: Continuous Deployment (dpl) with Hiro Asari — ведуча і гість подкасту обговорюють continuous deployment і гем dpl зокрема.
- 260: Rails Performance with Nate Berkopec — основна тема випуску — продуктивність фреймворку Ruby on Rails.
- 261: Domain Driven Design & Bots with Jos? Albornoz — послухайте про інфраструктуру в Shopify, domain-driven design і ботах.
Remote Ruby
- Joined by Chris Seaton — провідні і гість подкасту обговорюють проект TruffleRuby.
- Joined by Terence Lee — в цьому випуску ведучі розмовляють з Terence Lee — одним з членів Ruby Core Team і активним учасником спільноти Ruby.
- Joined by Ben Orenstein — гість подкасту — Ben Orenstein — розповідає про свій досвід розробки на Rails і про свій проект Tuple.
Ruby Testing
- 022 — TDD and Refactoring with Corey Haines — ведучий і гість подкасту обговорюють підхід test-driven development (TDD) і рефакторинг
RubyConf AU 2019 — добірка доповідей конференції RubyConf AU 2019.
Лютневі випуски GoRails:
- Dynamic Nested Forms with Stimulus JS — як створювати динамічні форми, в Rails за допомогою StimulusJS;
- Symbols vs Strings — Symbols і Strings для новачків;
- How to Deploy Rails Production to on Ubuntu 18.04 Bionic Beaver — розгортаємо Rails-додаток на Ubuntu 18.04.
Підбірка платних скрінкасти від Drifting Ruby у лютому:
- #171 What the RegEx? — як використовувати pattern matching в регулярних виразах на Ruby;
- #172 API Authentication with Omniauth — реалізація React-компонента для аутентифікації додатку на Rails 5;
- #173 Simple and Complex Database Migrations — як працюють міграції баз даних;
- #174 React Native and Ruby on Rails API Only Applications — як створити додаток на React Native і пов'язати його з API на Ruby on Rails.
Лютневі випуски платних скрінкасти від Ruby Tapas:
- #562 Explore and Extend — Part 1 і #563 Explore and Extend — Part 2 — як масштабувати код;
- #564 Exploratory Refactoring — основи рефакторінгу;
- #565 Parameter Destructuring — як деструктурировать параметри в Ruby.
Щодо тем/матеріалів/івентів, які варто додати в наступний випуск дайджесту, пишіть в коментарях або на [email protected] . Дякуємо за допомогу в підготовці дайджесту команді RubyGarage .
? Попередній випуск: Ruby дайджест #26
Опубліковано: 02/03/19 @ 11:00
Розділ Різне
Рекомендуємо:
Финстрип за Лютий 2019, інфо-сайти. Стагнація
Scala дайджест #9: результати дослідження мови, Scala 3, модель TensorFlow в Scala
Навчання без учителя – вбивця математичного моделювання?
Питання ФОПів закрите, працюємо над законом для креативних індустрій. Про зустріч президента й прем'єр єра з ІТ
Зміна формули ІКС 27.02.2019