Ruby/Rails дайджест #4: Hanami v.1.0.0, чек-лист по безопасности в Rails и Idiosyncratic Ruby

Всем привет! Ruby/Rails дайджест за апрель посвящен фреймворку Hanami не просто так. В апреле Hanami обновился до версии 1.0.0, поэтому обратите внимание на подборку материалов о фреймворке. Также в новом дайджесте ищите чек-лист по мерам безопасности в Rails, подборку полезных советов и скрытых возможностей в Ruby и много других интересных статей.

Почитать

Безопасность

Ruby on Rails Web Application Vulnerabilities: How to Make Your App Secure ‒ лонгрид о наиболее распространенных проблемах безопасности Rails-приложений. Обязательно к прочтению для тех, кто заботится о безопасности в Rails.

One Line of Code that Compromises Your Server ‒ Session secret ‒ ключ для шифрования cookies. В статье объясняется, как взламывают этот ключ и с какими потенциальными угрозами для application-сервера вы можете столкнуться.

Resilience in Ruby: Handling Failure ‒ если вы решили больше не хранить все данные приложения в одной базе данных и разделить их, статья поможет вам справиться с этой задачей и предотвратить возможные неудачи.

Zen Rails Security Checklist ‒ чек-лист по мерам безопасности, которые стоит учесть при разработке Rails-приложений.

Тестирование

5 Tips for More Effective Capybara Tests ‒ Capybara ‒ популярный фреймворк для тестирования веб-приложений, любимый многими. Тем не менее, 5 советов для более эффективного тестирования с Capybara не будут лишними и для опытных разработчиков.

Yardcheck: Validate YARD docs by running your test suite ‒ гем Yardcheck проверяет корректность YARD типов, прогоняя комплексные тесты.

Full-Stack Testing with Rails System Tests ‒ статья о подходе Rails 5.1 к системным тестам и их преимуществах как для для олдскульных интеграционных тестов, так и текущих решений для тестирования на базе Capybara.

Производительность

The Rubyist’s Guide to Memoization ‒ мемоизация ‒ один из способов улучшить производительность программного обеспечения. Детальные примеры в статье раскрывают суть мемоизации.

Monitoring Sidekiq Using AWS Lambda and CloudWatch ‒ интересный кейс об использовании AWS Lambda для визуализации данных о enqueued jobs и повторных передачах Sidekiq.

GraphQL::QueryResolver: Minimize N+1 queries generated by GraphQL and ActiveRecord ‒ GraphQL:: Query Resolver позволяет минимизировать запросы N+1, которые генерируются GraphQL и ActiveRecord.

ActiveJob::TrafficControl: Rate limiting/job enabling for ActiveJob using distributed locks in Redis or Memcached ‒ гем ActiveJob::TrafficControl предоставляет возможность устанавливать паузы и лимиты на запуск задач для ActiveJob c помощью распределенных блокировок.

GitHub::DS: A collection of Ruby libraries for working with SQL on top of ActiveRecord’s connection ‒ GitHub::DS ‒ это коллекция Ruby-библиотек для работы с SQL наряду с подключениями ActiveRecord.

Jumping Off The Ruby Memory Cliff ‒ Richard Schneeman объясняет, почему иногда использование RAM превышает лимит и как бороться с этой проблемой.

Improve your Ruby application’s memory usage and performance with jemalloc ‒ библиотека jemalloc позволяет улучшить производительность Ruby-приложений до 10%, а также уменьшить использование RAM.

Разное

Ruby 2.4 series from BIGBinary ‒ подборка статей по теме Ruby 2.4, которые держат разработчиков в курсе о новом функционале и обновлениях.

Rails Benchmarking: Puma and MultiProcess ‒ бенчмаркинг Rails-приложений: Puma и MultiProcess.

Versioning a Rails API ‒ что вы получаете от контроля версий API, почему не стоит отказываться от этого и как обновить ваше приложение, чтобы оно заработало.

How I Wrote the HTTP-client for mruby ‒ кейс о написании небольшого HTTP-клиента для mruby.

Ruby 101: Data Structures ‒ статья для начинающих разработчиков о структуре данных в Ruby: array, hash, iteration.

Dry-Validation as a Schema Validation Layer for Ruby on Rails API ‒ Legacy-код никогда не бывает таким, как нам бы хотелось. Но благодаря готовым решениям вроде библиотеки Dry-Validation ‒ одной из «мастхэв» библиотек для работы с разными видами входящих данных ‒ эта проблема решается.

A Ruby Shadowing Bug in the Wild ‒ не все замечают затаившийся баг в Ruby, когда локальные переменные «заслоняют» методы класса. Tom Copeland рассказывает об этом подводном камне в Ruby.

All Rails Service Objects as One Ruby Class ‒ Service objects становятся мейнстримом в Rails-сообществе; статья раскрывает суть service objects, заключенных в один класс.

Speed Up Your Sinatra Development with OpeningAct ‒ OpeningAct ‒ гем, который предлагает простой шаблон для Sinatra, таким образом, вы можете полностью сосредоточиться на разработке вашего приложения.

Idiosyncratic Ruby: Documenting All Ruby Specialities ‒ подборка различных приемов и хитростей в Ruby, а также сравнений, советов и много других полезных вещей.

Support of Ruby 2.1 Has Ended ‒ Ruby 2.1 больше не поддерживается. Рекомендуется как можно быстрее перейти на Ruby 2.3 или Ruby 2.4.

Послушать

TinyTDS, Databases, and SQL Server with Ken Collins ‒ авторы подкаста Ruby Rogues обсуждают TinyTDS, базы данных и SQL сервер вместе с Ken Collins ‒ автором SQL Server Adapter for Active Records и TinyTDS.

The Rails 5 Way with Obie Fernandez ‒ звездный гость очередного подкаста Ruby Rogues ‒ Obie Fernandez, автор The Rails 5 Way.

Migrating from redis-namespace, Rooby, Headless Chromium, CodeSandbox, Prettier и прочее ‒ новый выпуск подкаста от RWpod включает в себя темы по Ruby (дополнительные параметры для Logger в Ruby 2.4, обсуждение полезных гемов) и JavaScript.

Посмотреть

Using Webpack in Rails with the Webpacker Gem ‒ скринкаст с гемом Webpacker для создания современных frontend решений JavaScript в вашем Rails-приложении.

Ruby Snack #60: Create New Rails App with Docker ‒ в очередном скринкасте RubyThursday объясняется, как с помощью Dockerfile и docker-compose.yml файла создать новое Rails-приложение.

Ruby Snack #61: Rails Development Flow with Docker ‒ продолжение предыдущего скринкаста о разработке Rails-приложения с Docker.

Туториалы

Ruby on Rails 5.1.0 Deprecations ‒ перечень устаревших методов в Rails 5.1.0.

Configuring New Rails Projects With .railsrc and Templates ‒ конфигурация новых Rails-проектов с помощью .railsrc файла и templates.

Action Cable ‘Hello World’ with Rails 5.1 ‒ пошаговый туториал объясняет, как отправить HTML-код из консоли в уже загруженную веб-страницу.

Slim down hefty Rails controllers AND models, using domain model events ‒ статья (а также скринкаст в ней) объясняет рефакторинг-технику для следования гайдлайну «fat model, skinny controller».

Importing Invalid Legacy Data with Rails ‒ туториал о том, как импортировать legacy-код, несовместимый с вашим новым Rails-приложением.

How to Recover from Rails Database Schema Conflicts When Rebasing ‒ туториал по пошаговом решении конфликтов при изменении версии схемы после мержа изменений.

Stop Using Case Statements in Ruby ‒ при проверке классовых типов данных, лучше избегать использования case statements и прибегать к полиморфизму. Туториал объясняет, как решить проблему case statements.

Релизы

www.faecms.com ‒ новая open-source CMS на Rails с удобным интерфейсом и функционалом: отслеживанием изменений, глобальным поиском, инструментом для загрузки и обработки изображений и др.

Hanami

Hanami v1.0.0 ‒ в апреле вышел релиз Hanami v1.0.0. Это ‒ маленькая победа для сравнительно свежего фреймворка (работа над Hanami началась в 2012 году). Релиз включает в себя новые версии гемов:

  • hanami-1.0.0
  • hanami-model-1.0.0
  • hanami-utils-1.0.0
  • hanami-validations-1.0.0
  • hanami-router-1.0.0
  • hanami-controller-1.0.0
  • hanami-view-1.0.0
  • hanami-helpers-1.0.0
  • hanami-mailer-1.0.0
  • hanami-assets-1.0.0

Также мы подготовили интересные статьи по теме, которые дадут вам возможность узнать побольше о фреймворке Hanami, сравнить его с Ruby on Rails и познакомиться с его возможностями.

What I learned Building an App in Hanami ‒ вопрос «Hanami лучше, чем Rails?» интересует многих. В статье рассказывается об опыте создания приложения на Hanami.

Rails vs Hamani ‒ сравнение Rails и Hanami по многим фронтам: структуре каталогов, действиям контроллеров, application routing, view helpers и другим.

From Rails to Hanami (Lotus) Part 1: Container Architecture, Models, Views and Assets ‒ лонгрид о переходе с Rails на Hanami, а также MVC-архитектуре Hanami.

Hanami Trick: Default Template for Mailers ‒ статья о создании стандартных шаблонов для email’ов.

Uploading Files with Shrine in Hanami ‒ Shrine ‒ гем, который реализует загрузку файлов в Hanami. Пошаговый туториал объясняет, как реализовать функционал загрузки файлов с Shrine.

How to Run Hanami in RubyMine ‒ туториал по запуску Hanami в RubyMine.

Using Sidekiq with Hanami ‒ Sidekiq ‒ популярный гем для отложенных задач в Rails. В статье объясняется, как интегрировать Sidekiq в Hanami.

Библиотеки

GoogleCloud: The Google Cloud client library for Ruby ‒ библиотека предоставляет API для интеграции с сервисами Google Cloud Platform.

Postal ‒ полноценный mail server для веб-сайтов и веб-серверов, который быстро попал в топ рейтинга Trending на GitHub, получив более 2600 звезд.

Книги

Rails, Angular, Postgres, and Bootstrap: Powerful, Effective, Efficient, Full-Stack Web Development ‒ 25 июня в издательстве The Pragmatic Programer выходит второе издание книги Rails, Angular, Postgres, and Bootstrap: Powerful, Effective, Efficient, Full-Stack Web Development. Уже можно оформить предзаказ.

Effective Testing with RSpec 3 ‒ также в июне выйдет книга Effective Testing with RSpec 3 в O’Reilly Media. Предзаказ уже открыт.

Functional Web Development with Elixir, OTP, and Phoenix ‒ Elixir-комьюнити активно развивается. Новая книга по веб-разработке с Elixir выходит 10 октября на The Pragmatic Bookshelf, электронная версия книги уже доступна.

События

Ruby Meditation #15 ‒ 13 мая в Днепре впервые пройдет митап Ruby Meditation. Полная agenda и детали ивента по ссылке.

#pivorak 22 ‒ 28 апреля во Львове митап #pivorak собирает спикеров с темами Secret Life of Git, Data & Bounded Contexts, Strong and weak sides of Golang in production. И, как всегда, будет традиционная афтепати в стиле #pivorak.

Rails DDD Workshop in Lviv with Andrzej Krzywda ‒ 25 мая во Львове разработчики Andrzej Krzywda и Robert Pankowecki из Arkency проведут Rails Domain Driven Design Workshop.

Организаторы конференции RubyC 2017, которая состоится 3-4 июня в Киеве, объявили финальный список спикеров и их тем, так что не забудьте купить билет ‒ лето не за горами.

Ruby Meditation #16 ‒ 16 июля солнечная Одесса встречает митап Ruby Meditation. Билетов в продаже пока нет, ждем agenda и старт продаж.


Касательно тем/материалов/ивентов, которые стоит добавить в следующий выпуск дайджеста, пишите в комментариях или на  Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. . Спасибо за помощь в подготовке дайджеста команде RubyGarage.


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

Похожие статьи:
«Лаборатория Касперского» и швейцарская компания WISeKey приступили к совместной разработке защитной технологии для носимых...
Пандемія коронавірусу по-різному вплинула на ІТ-компанії. Деякі фірми зазнали збитків і були змушені відмовитись від оренди...
Власник компанії, яка забезпечує проведення онлайн-платежів через державний портал і застосунок «Дія», отримуючи з цього...
265-й выпуск подкаста «Откровенно про IT карьеризм». В подкасте пойдет речь о языках программирования...
Ссылки, на которые лучше таки нажать (по мнению автора), отмечены знаком (!) Java 9 JDK 9: General...
Яндекс.Метрика