Ruby дайджест #34: итоги года, Ruby 2.7.0, актуальность Ruby on Rails в 2020
Дайджест был создан в соавторстве с Мариной Завийбородой, Copywriter в RubyGarage.
Всем привет! Завершаем год с нашим традиционным Ruby/Rails дайджестом. 2019 запомнился нам грандиозным релизом Rails 6.0 с Action Mailbox, Action Text, поддержкой параллельного тестирования, Webpacker из коробки и другими полезными вещами. Летом вышла preview1 версия Ruby 2.7.0, включающая улучшения JIT и экспериментальный Pattern Matching. Еще в июне Ruby обзавелся тайпчекером Sorbet, который разработала команда Stripe. А чем запомнился этот год вам?🥳
Релизы
Ruby 2.7.0 — на Рождество вышла новая версия, в которой представлены новые фичи: pattern matching, улучшение REPL, Compaction GC, разделение позиционных и именованных аргументов.
Ruby 2.7.0-rc2 Released — данная версия была выпущена для сбора обратной связи перед финальным релизом Ruby 2.7.0. В ней будут представлены новые фичи: pattern matching, улучшение REPL, Compaction GC, разделение позиционных и именованных аргументов.
Почитать
RSpec metadata — what they are and how to use them — разбираемся в RSpec metadata: что это, как это работает и как использовать.
Proxying Outbound HTTP Requests Through Static IP Addresses on Heroku — учимся проксировать исходящие HTTP-запросы через статичные IP-адреса на Heroku.
Software Philosophy Quotes and Memes — просто подборка мемов и смешных цитат о программировании, Agile, и этом всем :)
Martian Chronicles
Pulling the trigger: How to update counter caches in your Rails app without Active Record callbacks — Evil Martians экспериментируют с триггерами как средством поддержания согласованности агрегированных данных при использовании Active Record и любой базы данных SQL. Вместо того, чтобы использовать сложные инструменты вроде ElasticSearch для фильтрации и поиска, авторы демонстрируют простой подход, который достигает того же результата с некоторыми готовыми функциями базы данных.
Persisted queries in GraphQL: Slim down Apollo requests to your Ruby application — разбираемся, как уменьшить размер сетевых запросов от клиента Apollo к GraphQL Ruby. В статье показывается, как работают эти запросы и как их настроить как на клиенте, так и на сервере с помощью Ruby-гема graphql-ruby-persisted_queries.
BigBinary
Традиционная подборка от BigBinary по обновлениям в Ruby 6:
Rails 6 adds rails db:prepare to migrate or setup a database
Rails 6.1 adds *_previously_was attribute methods
Rails 6 adds guard against DNS Rebinding attacks
Semaphore
How to Easily Modernize Older Applications With Docker — интервью с Elton Stoneman, Docker Architect и автором книги Learn Docker in a Month of Lunches о том, как новичкам обучиться Docker, оптимизации энтерпрайз-систем без переписывания кода и его новой книге.
CI/CD for Spring Boot Microservices — туториал по созданию и тестированию образа Docker с помощью непрерывной интеграции. Также в статье объясняется, как расширить CI/CD с непрерывным развертыванием на кластер Kubernetes.
In Continuous Integration, Run Fast and Fundamental Tests First — оптимизируем CI/CD пайплайн с помощью некоторых уловок.
Benchmark Report: Docker Builds with Semaphore vs. Docker Hub — результаты бенчмарка Semaphore и Docker Hub с настоящим use case.
Thoughtbot
Token Authentication with Rails — имплементим простую аутентификацию пользователей (без инструментов вроде OAuth 2) с помощью встроенного функционала Rails.
Faking External Services in Tests with Adapters — учимся генерировать фейковые внешние сервисы в тестах с адаптерами.
Arkency
Unexpected benefits of storing commands — хранение команд в Rails Event Store.
OOP Refactoring: from a god class to smaller objects — примеры рефакторинга по принципам OOP.
Ruby — raise Exception.new or raise Exception — they’re both the same — TLDR: Можно использовать raise Exception и raise Exception.new — результат идентичен и на 4 символа меньше.
Netguru
We Asked the Industry: «Is Ruby on Rails Dead?» — Netguru спросили разных экспертов из Ruby-сообщества про актуальность Ruby on Rails. Мнение единогласное: Ruby on Rails продолжает радовать разработчиков своей стабильностью, разнообразием готовых решений и уникальным, дружелюбным сообществом.
Using Cypress and Screener to Automate Testing for Keller Covered — учимся использовать Cypress и Screener для автоматизации тестирования Keller Covered.
All You Need to Know to Start with Ruby — полезная статья для новичков, которые хотят начать изучать Ruby: базовые принципы языка, как установить Ruby и полезные ресурсы для изучения.
Appfolio
More Fiber Benchmarking — продолжение бенчмаркинга Fiber в Ruby.
JIT and Ruby’s MJIT — авторы разбирают разницу между JIT в Ruby и MJIT.
Ruby’s Roots and Matz’s Leadership — Matz об истоках Ruby и под влиянием каких языков был создан Ruby, а также о лидерстве Ruby среди языков программирования.
Книги
В издательстве The Pragmatic Bookshelf вышло две новых книги, которые можно купить в электронном формате: Software Estimation Without Guessing и Designing Elixir Systems with OTP.
Туториалы
How to Maintain Performance with Big Datasets Using Highcharts.js and Vue — оптимизируем производительность проектов с большим массивом данных с инструментом Highcharts.
Decluttering Translations in Rails Apps — интернационализация (i18n) — неотъемлемая часть приложения, которым пользуются по всему миру. В туториале рассказывается о том, как увеличивать файлы с переводом по мере того, как приложение масштабируется и избежать беспорядка и дублирования.
Filtering with GraphQL and Prisma: What NOT to do — автор делится опытом создания фильтрации более чем одного запроса с GraphQL и Prisma и проблемами, с которыми столкнулся в процессе.
Create AWS S3 bucket as a static website with AWS CLI — краткий туториал по созданию статичных веб-сайтов на AWS S3 bucket и AWS CLI.
Послушать
RWpod
Remote Ruby
Concerns, Interactors, and Ruby 2.7 Features (Ruby 2.7 Christmas Day 🎉) — в подкасте идет речь об использовании Concerns в Rails по сравнению с сервисными объектами (с использованием Interactors) и возможностях, которые появятся в Ruby 2.7.
Introducing Nate Hopkins, Working with ActionCable’s API, Webpacker in Rails Engines, and Stimulus Reflex Updates — в этом эпизоде Нейт Хопкинс рассказывает об API-интерфейсе ActionCable, обсуждает с ведущими подкаста проблемы использования JavaScript в новом движке Rails и делится опытом управления OSS-проектами GitHub Action.
Introducing Andrew Mason, CI Tooling, Ruby 2.7 Features, Rails 6.1 on the Radar — один из ведущих программы, Джейсон, делится способами использования GitHub Actions за пределами CI, новых функциях в Ruby 2.7 и некоторых функциях на радаре для Rails 6.1.
Building Chat Applications, GitHub Actions, HatchBox Features, and Mistakes — Джейсон рассказывает о том, каково было работать с ActionCable и React над последней функцией Podia — обменом сообщениями. Ведущие также обсуждают действия GitHub и некоторые функции HatchBox (включая использование DigitalOcean Spaces в качестве замены S3).
5by5 Ruby on Rails Podcast
#297: The Functional Rubyist with Joe Leo — подкаст посвящен функциональному программированию в Ruby и Ruby-сообществу после RubyConf 2019.
#296: Conscious Coding Practice with Noah Gibbs — подкаст с Noah Gibbs, членом Ruby Core Team, о его книге Mastering Software Technique: Conscious Practice for Writing Software и многом другом.
#295: Power the World with Rails with Bindiya Mansharamani & Andrew Dereng — подкаст о выборе GraphQL для проекта RigUp, культуре разработчиков и карьерном пути для достижения уровня Senior.
Всем Ruby-обнимашки и с Новым Годом🎄
← Предыдущий выпуск: Ruby дайджест #33
Следующий выпуск: Ruby дайджест #35 →
5 коментарів
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.