Ruby/Rails дайджест #8: релиз Active Storage, масштабируется RoR или все-таки нет, курсы по изучению Ruby/Rails

Всем привет! В июле было много горячих новостей, и мы хотим поделиться ими в нашем дайджесте.

Предлагаем вашему вниманию новости о Active Storage, подборки статей о принципе SOLID, машинном обучении и искусственном интеллекте с использованием языка Ruby, дискуссию о масштабируемости Ruby on Rails, а также множественные туториалы и кейсы на тематику Ruby/Rails. Не забудьте проверить, какие конференции проходят осенью и что вас ждет на курсах по изучению Ruby/Ruby on Rails от RubyGarage.

Почитать

Серия из пяти статей, где каждому SOLID принципу посвящена отдельная статья и приводятся примеры, как можно использовать эти принципы в Ruby:

How to test Rails app using Mocha JS and Chai JS ? — рекомендации, как интегрировать JavaScript-библиотеки Mocha JS и Chai JS в приложение Ruby on Rails для еще более качественного тестирования.

The Ultimate Guide to Blocks, Procs & Lambdas — из этого туториала вы узнаете, как работают блоки в Ruby, какая существует разница между procs и lambdas и об эффекте «замыкание», который возникает каждый раз, когда вы создаете блок.

Graphing Benchmark Results in Ruby — иногда результаты сравнительного теста сложно читать из-за большого количества данных. Самый лучший способ показать статистику производительности через графики.

Running feature specs with Capybara and Chrome headless — в виду того, что Chrome позволяет запуск браузера в среде без графического пользовательского интерфейса, поддержка PhantomJS перестала быть необходимой. Как настроить запуск feature specs с помощью Capybara и Chrome без GUI, читайте в туториале.

Ruby on Rails Code Audits: 8 Steps to Review Your App — чтобы приложение было качественным, стоит обратить внимание на чеклист по контрольной проверке кода приложения на Rails.

Подборка статей за июль от PracticalAI.io. Как интегрировать машинное обучение и искусственный интеллект в проекты по разработке программного обеспечения с использованием языка Ruby:

How to get your Rails data into your React component with webpacker — гем webpacker — это простой способ использовать библиотеки JavaScript на Rails с применением собственных инструментов JS, таких как Yarn и Webpack. В туториале вы найдете решение, как передать данные Rails в компонент React с помощью webpacker.

Using influxdb with ruby — база данных InfluxDB нужна для хранения временных рядов, метрик и информации о событиях. В этом гайде узнавайте о преимуществах, как работает и как лучше использовать InfluxDB на Ruby.

How to safely store API keys in Rails apps — советы, как безопасно хранить API ключи в Rails приложениях, автор рассматривает все за и против каждого из подходов.

nil?, empty?, blank? in Ruby on Rails — what’s the difference actually? — знаете ли вы разницу между методами ‘nil?’, ‘empty?’, ‘blank?’, ‘present?’? Это стандартные методы Ruby или они включены в Rails? В статье предлагается разобраться, какие методы и когда необходимо использовать.

How to quickly add graphs and charts to Rails app — статья о том, как быстро визуализировать данные в приложении Rails с помощью Google Charts.

Two Tests You Should Run Against Your Ruby Project Now — для вас важны безопасность и юзабилити проектов, над которыми вы работаете? В таком случае, узнавайте больше о тестах «Security audit» и «Licensing audit» для создаваемых Ruby приложений.

Споры о производительности фреймворка Rails не дают покоя сообществу RoR. Стоит ли выбирать фреймворк Ruby on Rails для разработки web-приложения или есть альтернативные варианты? Любые мнения имеют право на высказывание, лучше всего ознакомиться со всеми мнениями и принять самостоятельное решение:

  • Is Ruby Too Slow For Web-Scale? — статья о масштабируемости Ruby on Rails и почему стоит выбрать этот фреймворк для создания веб-приложения.
  • Rails Web-Scale is Expensive — взгляд на Rails с другой стороны и комментарии к предыдущей статье: да, RoR масштабируется, но в какой-то момент его использование обходится дорого.

A Few RSpec Helpful Hints — полезные советы, которые помогут упростить написание и чтение RSpec тестов и сэкономить время, которое тратится на исправление ошибок.

How I test Rails applications — если вы начинающий разработчик, эта статья о разных видах тестирования Rails приложений будет отличным гайдом. Автор делится лучшими практиками в тестировании, к которым он пришел за четыре года работы с RoR.

How to avoid inheritance in Ruby? — в статье описываются три варианта структурирования кода — inheritance, mixins и composition — узнайте, какой из них лучше подходит для вашего проекта.

Lint your Ruby code with Overcommit and static analysis tools — статические анализаторы кода помогают оптимизировать производительность и избегать проблем с безопасностью. Узнавайте в туториале, как с помощью git hooks контролировать качество кода для Ruby, RoR и Chef.

Implementing inheritance with params: CreateProducts < ActiveRecord::Migration[5.0] — из туториала вы узнаете, как выполнять наследование с параметрами и научитесь парочке интересных трюков в Ruby.

Fast CSV Report Generation with Postgres in Rails — альтернативные решения, как быстро сгенерировать пользовательские отчеты в формат CSV с помощью Postgres.

View Objects — The Way to Deal with Messy Rails Views — практические рекомендации почему стоит использовать подход View Objects.

Ruby concurrency: in praise of condition variables — статья из серии concurrency в Ruby, в статье рассказывается о проблемах consumer-producer и о том, как их изящно решать с помощью condition variables.

Lessons Learned Integrating Rust with Ruby — слайды презентации Daniel P. Clark на митапе Rust DC, как лучше интегрировать Rust в Ruby.

Серия статей, как используя Vue.js frontend и Rails API в едином репозитории создать MVP приложение для книжного магазина:

The battle for auditing and versioning in Rails — Audited vs Paper Trail — гемы Audited и Trail регистрируют все изменения в моделях Rails. Решить, какой гем подойдет лучше для решения ваших задач поможет сравнение с примерами их использования.

A Few RSpec Helpful Hints — пару полезных советов которые помогут вам писать более читабельные и поддерживаемые RSpec тесты.

When distributed locks might be helpful in Ruby on Rails application — автор описывает в статье, как определить, может ли ваше Ruby on Rails приложение столкнуться с проблемой параллелизма, и как ее решить с помощью distributed locks.

Preventing security issues in Ruby on Rails — чеклист по потенциальным проблемам безопасности RoR и как их предотвратить.

Realtime with React and Rails — на примере создания приложения карты реального времени, которое позволяет транслировать ваше местоположение, в туториале предлагается освоить, как работает Action Cable, и как использовать WebSockets для внедрения функционала реального времени в приложение Rails.

Real World Rails Background Jobs — Rails приложения могут быть созданы так, что они выполняют большую часть работы в фоновых заданиях. Предлагаем ознакомиться со списком разнообразных примеров фоновых заданий из реальных приложений для анализа и изучения.

Is it always a good idea to split long methods into smaller ones? An experiment — эксперимент по разбивке длинных методов на части для того, чтобы повысить читаемость кода. Автор предлагает три способа, как это можно сделать лучше.

Streaming Data with Ruby Enumerators — потоковая передача позволяет эффективно обрабатывать большое количество данных. Но по сравнению с Node.js Stream API, где потоки могут быть легко скомпонованы, работа с потоковыми данными в Ruby с использованием блоков неудобна. В статье объединяются идеи из Node.js Streams с Ruby enumerables для создания композиционных потоков в Ruby, чтобы масштабировать обработку веб-канала до впечатляющих темпов.

В июле анонс David Heinemeier Hansson (DHH) о новой функции для Rails 5.2 мало кого оставил равнодушным. Active Storage упрощает загрузку и привязку файлов в облачных сервисах, таких как Amazon S3 или Google Cloud Storage, и прикрепляет эти файлы к Active Records. Он также предоставляет дисковый сервис для тестирования или локального развертывания, но основное внимание уделяется облачному хранилищу. Хотя еще рано делать выводы, первые отзывы уже есть:

How I Reduced my DB Server Load by 80% — решение и рекомендации, как улучшить скорость загрузки сервера базы данных.

What skills should a junior Ruby on Rails developer have? — хотите стать достойным RoR разработчиком, или вы ищете подходящего программиста в свою команду? Проверьте чеклист навыков, которые следует иметь начинающему специалисту, чтобы не только создавать программное обеспечение, но и быть важной частью команды, оказывая влияние на продукт, который вы создаете.

Tips to improve speed of your test suite — в статье вы найдете лайвхаки, как улучшить скорость автотестов, чтобы в дальнейшем выиграть время при разработке.

Making iOS & Android apps with Rails & Turbolinks — базовый гайд, как с использованием Ruby on Rails и Turbolinks создать кроссплатформенное приложение под iOS и Android.

Scope the Monkey: Refinements in Ruby — советы, как уменьшить количество манки патчей с помощью Ruby refinements.

Rails on Docker: Getting Started with Docker and Ruby on Rails — Docker — это открытая платформа для разработки, доставки и эксплуатации приложений. В этом туториале вы найдете практические советы, как подготовить базовое приложение Rails для использования в контейнере Docker.

API v2 Architecture and Hanami — кейс, как сделать трансфер новой версии API с Rails на Hanami.

Rails has passed 100 million downloads on RubyGems — чудесная новость для поклонников RoR: количество загрузок Rails на RubyGems уже превышает количество в 100 миллионов.

Shopify @ 80,000 requests per second on Rails — все еще есть сомнения на счет масштабируемости RoR? David Heinemeier Hansson (DHH) думает иначе.

Послушать

Продолжение пятого сезона на канале RWpod. Подборка подкастов за июль:

The Bike Shed — канал, где ведущие и их гости обсуждают свой опыт разработки и все, что привлекает их внимание касательно мира Ruby, Rails и JavaScript. В июле обсуждения затрагивают тестирование, сообщества разработчиков, уроки, извлеченные из прошлых проектов, и выступления на конференциях:

MRuby and Language Security with Daniel Bovensiepen — интервью Daniel Bovensiepen — основного разработчика MRuby. Daniel рассказывает о Shopify и MRuby — упрощенной версии языка Ruby.

Мир Ruby/Ruby on Rails полон удивительных и талантливых разработчиков. Благодаря подкастам Ruby Rogue — My Ruby Story мы имеем возможность познакомиться с ними поближе:

  • Ruby Rogues: My Ruby Story #010 — Dave Kimura — поклонникам популярного Ruby on Rails скринкаста и блога Drifting Ruby будет интересно узнать больше о его создателе Dave Kimura.
  • Ruby Rogues: My Ruby Story #011 — Greg Baugues — гость Greg Baugues, уже ранее выступал в подкастах Ruby Rogues. В этом выпуске Greg рассказывает свою историю знакомства с языком Ruby и опыте работы в компании Twilio.
  • Ruby Rogues: My Ruby Story #012 — Simon Moro — в этом эпизоде гость Simon Moro расскажет о самостоятельном изучении Ruby и о своем предпринимательском опыте.

Подкасты Ruby Rogue за июль, касающиеся программирования и сообщества и Ruby:

Посмотреть

Everything You Need to Know About Ruby Constants — скринкаст с подробным описанием о том, что нужно знать о константах Ruby.

The Ultimate Guide to Ruby Sorting — из этого скринкаста вы узнаете, как использовать методы sort и sort_by для сортировки массивов и хэшей в Ruby разными способами. Также вы узнаете о различиях производительности и способах выполнения алгоритма быстрой сортировки.

Drifting Ruby #89 Creating Custom Ruby on Rails Generators — генераторы Rails помогают упростить и отчасти автоматизировать workflow разработчика. С помощью этого руководства вы изучите, как создавать генераторы и настраивать существующие.

GORUCO 2017 — 24 июня в Нью-Йорке прошла конференция GORUCO, которая объединяет лучшие практики и опыт сообщества Ruby. Предлагаем к просмотру видеозапись с конференции. Также, на канале Confreaks можно просмотреть отдельные выступления спикеров.

Go Rails #198 Debugging Ruby: How to Interpret a Stacktrace — стек-трейс — это список методов, которые были вызваны до момента, когда в приложении произошло исключение. Скринкаст объяснит, как анализировать и понимать Ruby стек-трейс, когда что-то идет не так в вашем приложении.

Codemy School: Rails API — подборка обучающих видео о Rails API от CodemySchool.

Релизы и библиотеки

Новости о релизах и доработках Ruby on Rails в июле — выход Active Storage в Rails 5.2, предотвращение недопустимых PostgreSQL UUIDs, улучшения, исправления ошибок и многое другое:

RubyInstaller 2.4.1-2 released — в июле вышло обновление RubyInstaller для Windows.

mruby 1.3.0 released — вышла новая версия MRuby, который является упрощенным вариантом языка Ruby.

Ruby-Compiler — досрочный выход компилятора для Ruby, который позволяет очень быстро скомпилировать любой проект.

Maily — это Rails Engine для управления, тестирования и навигации по всем вашим шаблонам электронной почты вашего приложения.

ActiveStorage — вот так теперь будем хранить файлы в Rails приложениях.

Kbsecret — это библиотека / утилита, которая предоставляет интерфейс управления для KBFS и Keybase.

Genkan — механизм аутентификации для Rails.

Graphql-guard — простая авторизация для graphql-ruby.

Crank-Starter — одностраничное приложение, вдохновленное Kickstarter. Ruby on Rails backend, React / Redux frontend.

Down — утилита для потоковой передачи, гибкой и безопасной загрузки удаленных файлов.

Data-Science-With-Ruby — практическая Data Science с инструментами на основе Ruby.

Книги

Релизы:

The Rails 5 Way (4th Edition) — 27 ноября ожидается выход четвертого издания The Rails 5 Way, которое входит в Addison-Wesley Professional Ruby Series. Предзаказ уже доступен.

Mastering Ruby Closures: A Guide to Blocks, Procs, and Lambdas — 25 декабря выходит первое издание книги Mastering Ruby Closures: A Guide to Blocks, Procs, and Lambdas. Уже можно делать предварительный заказ.

Рекомендации:

Introduction to Programming with Ruby — онлайн версия книги Introduction to Programming with Ruby — пошаговое введение в программирование Ruby от Launch School.

Курсы

Курсы по Ruby/Ruby on Rails от RubyGarage — в начале октября стартуют Ruby/Ruby on Rails курсы от RubyGarage для тех, кто хочет освоить профессию «Web-разработчик». Регистрация на курс открыта. Тестовые задания принимаются до 1 сентября.

События

Rails Girls Rzeszów — митап Rails Girls в этот раз пройдет с 16 по 17 сентября в городе Жешув, Польша. На сайте уже есть расписание. Ивент бесплатный, но не забудьте зарегистрироваться.

RailsClub Moscow 2017 — в Москве 23 сентября пройдет Ruby/Ruby on Rails конференция — RailsClub. Среди множества выступающих будут присутствовать Richard Schneeman, Piotr Solnica и Nick Sutterer!

EURUKO 2017 — с 29 по 30 сентября в Будапеште, Венгрия пройдет ежегодная европейская конференция EuRuKo 2017. Расписание уже составлено. Среди многочисленных спикеров выступают Yukihiro «Matz» Matsumoto — создатель языка Ruby и один из разработчиков JRuby Charles Nutter.


← Предыдущий выпуск: Ruby дайджест #7

Похожие статьи:
Всем привет! Рады представить вам Ruby/Rails дайджест за август. В последний месяц лета предлагаем вам прочесть советы по улучшению работы...
Компанія Stability AI випустила набір великих мовних моделей (LLM) із відкритим кодом під загальною назвою StableLM та оголосила, що вони...
Наприкінці березня 2021 року у профілі компанії Sannacode на DOU (нині видалений на прохання компанії) з’явилися відгуки колишніх...
Привет, меня зовут Владимир Поло. Я основатель AcademyOcean — SaaS-продукта для онбординга и обучения сотрудиков. В течение...
Компания Apple объявила о том, что сегодня её новая коллекция Apple Watch Hermès стала доступна в избранных розничных...
Яндекс.Метрика