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

Похожие статьи:
Українська Manual QA Engineer Ганна Бреус розповіла на LinkedIn про те, як отримала запрошення на співбесіду в компанію AppCake (колишня назва Bat IT)...
Нічого теоретичного, лише власний успішний досвід. Робота. Робота. Ро-бо-o-о-та. Я так люблю свою роботу! Я дуже люблю свою...
Усім привіт, мене звати Микола. Два роки я працюю на позиції System Integration Engineer у компанії SoftServe, сертифікований Dell Boomi Architect....
В конце мая я выступал на JEEConf 2017, где...
Нещодавно з’явилася інформація про нову ініціативу Мінцифри — Diia City. Це вільна економічна зона для...
Яндекс.Метрика