Ruby дайджест #36: Ruby 2.7.1, инструменты мониторинга, YouTube-каналы о Ruby
В выпуске: как приводить в порядок базу кода, 25 причин перейти на Webpack, полезное для тех, кто создает телеграм-ботов на Ruby, хороший Ruby on Rails туториал.
Начнем с инструментов для продуктивной удаленной работы: парное программирование, митинги, общение через whiteboards, ретроспективы и все, что необходимо для продуктивной удаленной работы.
Релизы
This week in Rails — horizontal sharding, gzip schema cache, database rake tasks — релиз, в котором речь идет о горизонтальном шардинге, кэш схемах gzip, rake tasks для базы данных.
Rails 6.0.2.2 and 5.2.4.2 have been released! — 2 мини-релиза с исправлением XSS уязвимости.
Ruby 2.7.1 Released — релиз, посвященный исправлению багов и устранению проблем безопасности.
Spree 4.1 Released — mobile-first, новый Storefront UI и всякие красивости.
CanCanCan 3.1.0 Released — в этом релизе обновили лого :), не густо как для релиза, по этой причине все давно уже на Pundit.
Статьи и гайды
RuboCoping with legacy — как марсиане приводят старый Ruby-код к красивому и стандартному.
Уменьшаем глубину цепочки в коллекции Active Record Relation — многие монады все еще находятся в стадии разработки и еще не добавлены в Rails 6; давайте посмотрим, что там происходит.
А так же рассуждение на тему Should I really use monads?
Копаем хэши и массивы в Ruby — использование метода dig.
Рассуждения Thoughtbot на тему Recurring Events and PostgreSQL.
Статья о том, как подружить ActiveStorage и Elm.
Как захостить Rails 6 App с AWS ElasticBeanstalk и RDS.
Rail 6 Action Text — практический пример работы с Action Text.
25 причин перейти на Webpack — автор рассказывает почему НЕ asset pipeline.
Writing a Ruby Gem Specification.
Статья о том, как запустить Rails-приложение на EC2 с помощью Ansible.
Debugging в Ruby с помощью TracePoint.
Разбор проблемы Монти Холла через Ruby-код. Проблема Монти Холла — одна из известных задач теории вероятностей, решение которой, на первый взгляд, противоречит здравому смыслу.
Как приводить в порядок code base.
Среднее распределение, медиана, длинный хвост ответа. Не понимаете, о чем это? Это показатели из New Relic, и их надо уметь правильно читать. Вот хорошая статья на тему — Lies, Damned Lies, and Averages: Perc50, Perc95 explained for Programmers.
Интро в Encoding, Unicode и UTF-8 для Ruby-разработчика.
Создание нового приложения Rails в AWS Lambda должно быть таким же естественным, как и запуск в консоле $ rails new. Для этого создали Serverless Application Repository (SAR). Статья Using AWS SAM Cookiecutter Project Templates поможет в этом разобраться.
Создаем погодный бот для WhatsApp с учетом местоположения с помощью Ruby, Sinatra и Twilio.
Пример использования архитектурного паттерна Face в Rails-приложении.
Rails с несколькими поддоменами.
Почему без Pry не прожить Junior Ruby разработчику.
RPC с RabbitMQ и Hutch в Rails приложении.
Инструменты
Hanami::API хороший кандидат для создания микросервисов.
40+ инструментов для мониторинга Ruby on Rails приложения — в этот гайде вы найдете: какие метрики необходимо отслеживать, какие инструменты мониторинга бывают, сравнение систем мониторинга, как правильно выбрать нужный инструмент, что необходимо учитывать при поддержке production приложения.
Pg_query — инструмент для разбора и нормализации SQL-запросов с использованием анализатора запросов PostgreSQL, использует фактический исходный код сервера PostgreSQL для синтаксического анализа запросов SQL и возврата внутреннего parsetree PostgreSQL.
Active_record_doctor — определяет проблемы с базой данных, прежде чем они попадут в production.
Vessel — это быстрый высокоуровневый фреймворк для сканирования и просмотра веб-страниц, созданный на основе Ferrum, минимум зависимостей, Ruby-драйвер для запуска Google Chrome инстансов.
Полезности для тех кто создает Telegram Bots на Ruby.
Pattern Matching, появившейся в Ruby 2.7 — это экспериментальная функция, позволяющая глубоко сопоставить структурированные значения: проверить структуру и связать сопоставленные части с локальными переменными.
Spreadsheet_architect — инструмент для создания XLSX, ODS и CSV табличек.
Chaskiq — opensource-альтернатива Intercom, Drift и подобным маркетинг чат инструментам.
Fakeredis — эмулятор Redis для development и test окружений.
Если ваш клиент говорит, что он плательщик VAT, не верьте ему, а проверьте с помощью Valvat.
YouTube-каналы
YouTube-канал Derek Banas — большое количество туториалов на разные темы, которые создаются программистом по запросу других программистов.
Качественный развлекательно-образовательный контент от Mike Dane в том числе и Ruby Tutorial.
Большое количество бесплатных курсов от Eduonix Learning Solutions, в том числе и Ruby on Rails для начинающих.
freeCodeCamp.org — YouTube-канал с огромным количеством обучающих уроков (в том числе и по Ruby и Rails) от opensource-сообщества, создающего nonprofit проекты.
Edutechional предоставляет пошаговые руководства по различным темам для программистов. Нас интересует:
- Ruby on Rails Project Course — Build a Photo Blog;
- Learn Ruby on Rails from Scratch;
- Introduction to Ruby on Rails Development;
- Vim for Ruby Developers;
- Ruby on Rails Tips and Tricks;
- Ruby Coding Exercises;
- React + Rails API Authentication.
Drifting Ruby — это коллекция коротких видео для программистов на языке Ruby. Каждое видео посвящено конкретной теме или тому, как выполнить задачу при разработке приложения.
Скринкасты GoRails — создаются, чтобы заполнить пробелы в знаниях, объяснить «магию», и дать понимание, которое нельзя найти в другом месте. И это все о Ruby on Rails.
YouTube-канал команды Arkency — видео на темы: Ruby Refactoring, Rails Refactoring, Rails Architect, DDD in Rails, Event-Driven Rails from Scratch, Social Media for Busy Programmers.
Книги
А вот и Agile Web Development для Rails 6.
Не бесплатный, но очень годный Ruby on Rails Tutorial.
Пособие по разработке веб-приложений от А до Я — создаем веб-приложения, используя Vue.js и Rails.
Подкасты
Ruby Rogues
RR 451: Pair Programming with Ian Norris — обсуждение, что такое парное программирование, какие существуют неправильные представления о нем, когда парное программирование работает, а когда нет, удаленное парное программирование и другие его типы.
RR 452: The History and Personalities of Ruby with Chris O’Sullivan — разговор о людях, которые повлияли на Ruby, и о том, как Ruby сформировало сообщество и технологии, которые мы имеем сегодня.
RR 453: Ruby Next: Get future Ruby changes now with Vladimir Dementyev — разговор о Ruby, его вариантах использования и о том, какие фичи ждать в новых версий Ruby.
Remote Ruby
StimulusReflex at CodeFund, Testing ChurchChat, Encryption Gems, Inspecting Hey.com — в этом эпизоде разговор о новых обновлениях для CodeFund (на базе Stimulus Reflex), использовании fixtures в сочетании с factories в тестах Rails, использовании гемов Lockbox и Blind Index, обзор кода Hey.com и предложения RailsConf.
RailsConf Proposals, Building Forms with StimulusReflex, and More — в этом эпизоде разговор о представленных предложениях RailsConf, новой функции CodeFund, поддерживаемой StimulusReflex, strong migrations gem, создании сложных форм с помощью StimulusReflex и многом другом.
Tailwind UI, Hanami::API, Puma security fixes, and more — в этом эпизоде обсуждение Hanami, Puma, Shrine и другое.
Multitenancy, AWS Lambda, and a new online Ruby meetup? — в этом эпизоде обсуждения о Jumpstart Pro, Attributes API, AWS Lambda, Heavens Door, удалении Spring из Gemfile, использовании Gatsby, Jekyll, Tailwind UI и других интересных вещах.
Railsconf 2020 Cancelled, Linters, Layered Caching, & GlobalID — в этом эпизоде рассказывают о том, как RailsConf и MicroConf были отменены из-за COVID-19. Кроме того, другие темы включают Standard RB, Jumpstart Pro, ERB Lint, HTML Beautifier, global.iD, Secrets.
Javascript woes, Stimulus to the rescue, and online Railsconf talks — обсуждаются следующие темы: обновление до Rails 6.0.2.2, Storybook, Jekyll, Backbone, StimulusReflex, JavaScript и jQuery.
Интересное в RWPod Кафе
09 выпуск 08 сезона — Rollup 2.0, Isomorphic-git 1.0, RubyKaigi 2020 and COVID-19, Chaskiq, Stryker, Vue Formulate и прочее.
10 выпуск 08 сезона — RailsConf 2020 Cancelled, npm is joining GitHub, DeliveryBoy, RedwoodJS, COVID API и прочее.
11 выпуск 08 сезона — Babel 7.9.0, CVE-2020-10663, The Coronavirus App, StrMetrics, AntV, Kovid и прочее.
12 выпуск 08 сезона — Rails 6.0.2.2, Webpacker 5.0, Nanoid 3.0.0, Truemail, Pgsync, CS 253 Web Security и прочее.
Ruby on Rails Podcast
309: Upgrading Rails & Skunk for Scoring with Ernesto Tagwerker
310: Pivoting Brighton Ruby 2020 with Andy Croll
311: Pareto Product Programming with Philip Poots
312: (PFN) Podcasting From Home with Brittany & Nick
События
RailsConf решили сделать диванную версию, запишут DHH на видео и выложат в интернет.
Euruko 2020 перенесли на Май 2021.
Ruby Unconf еще не отменили.
RubyC начали объявлять спикеров.
← Предыдущий выпуск: Ruby дайджест #35