Annual Open Tech Conference - ISsoft Insights 2021. June 19. Learn more.
×Закрыть

Ruby/Rails дайджест #6: RailsConf 2017, мини-серия по написанию поддерживаемого объектно-ориентированного кода и релиз GitHub Marketplace

Предлагаем вашему вниманию отборные новости из мира Ruby за май месяц. В выпуске вы найдете: видео с RubyConf 2017, запуск GitHub Marketplace, релизы новых гемов, летние события в Украине. Помимо этого здесь еще много ссылок на полезные статьи и туториалы на разные темы. Присоединяйтесь, будет интересно.

Почитать

Refactoring and Architecture

A GraphQL Server Implementation — Ruby on Rails — GraphQL — это язык запросов для API, альтернатива REST. Статья подробно объясняет как внедрить сервер GraphQL в приложение на Ruby on Rails.

Building APIs with Ruby on Rails and GraphQL — из-за всплеска популярности смартфонов REST APIs стали основным стандартом для обмена данными между сервером приложений и клиентами. Одна из самых больших проблем, возникающих при разработке API — это структура и степень детализации данных, передаваемых вашим бэкенд приложением вашему клиентскому приложению. В статье рассматривается создание API с помощью Ruby on Rails и GraphQL.

How to Build a Ruby SlackBot — обзор того, как с помощью гема Slack-Ruby-Bot вы можете написать Slack-бота.

Fixing Unicode for Ruby Developers — автор рассказывает о поддержке Unicode на языке Ruby. Читать статью будет не только полезно, но и занятно.

Step by step guide to integrating DynamoDB with Ruby on Rails Application — I — пошаговый туториал о том, как интегрировать DynamoDB с Ruby on Rails.

Postgres json column + Rails @Casper — автор делиться позитивным опытом применения json column в Ruby on Rails и какую пользу из этого можно извлечь для отслеживания данных.

Developing Games With Ruby — онлайн версия книги Developing Games With Ruby расскажет, как приходится препираться с устаревшим кодом, исправлять ошибки, бороться с API, развертывать и интегрировать сервисы, чтобы иметь возможность строить миры, одушевлять драконов, нарушать законы физики и создавать искусственный интеллект.

What if we organized code by features? — требования меняются довольно часто, и нам нужно быстро реагировать. И к тому же, важно, чтобы другие разработчики продолжали иметь возможность понимать и изменять код. А что если мы организуем код «by features»?

Crystal by Numbers. Benchmarking Kemal, Ruby on Rails, and Sinatra — что, если мы сможем собрать Ruby (или на самом деле очень похожий диалект Ruby) непосредственно в быстрый машинный код? Вот тут и появляется Crystal lang.

Crystal from a Rubyist’s Perspective — Crystal, молодой и капризный язык программирования, который очень похож на Ruby. В статье рассматриваются преимущества его производительности с точки зрения Рубиста.

Helix. Native Ruby Extensions Without Fear — приложение, которое позволяет писать Ruby-классы на Rust безопасно и легко.

What is Clean Code and why should you care? — чистый код — это код, который легко понять и легко изменить. Идеи, которые считаются передовой практикой и представляют собой чистый код в индустрии и сообществе, и почему мы должны беспокоиться о нем.

SOLID — Single Responsibility Principle by example — иногда разработчики испытывают сложности с определением «ответственности». В статье раскрываются принципы SOLID объектно-ориентированного проектирования и как можно использовать эти принципы в Ruby.

Functional Object Composition and MVC — сравнение Functional Object Composition и MVC, почему MVC не является объектно-ориентированным, Functional Object Composition как объект первого уровня и где применять код эквивалентный MVC.

The vision behind Rails, DDD and the RailsEventStore ecosystem — статья (а также видеоинтервью в ней) предлагает использовать DDD/CQRS/ES в своих приложениях на Ruby on Rails и делиться мнением об их преимуществах.

The Ruby Module Builder Pattern — введение в паттерн, созданный автором статьи, под названием Module Builder Pattern.

Username generation in Ruby on Rails — подробное объяснение о том, как создать уникальное имя пользователя автоматически, используя полное имя пользователя в приложении Ruby on Rails.

Writing a Hypermedia API client in Ruby — описание того, как выглядит Hypermedia API, и как можно создать универсальный Ruby-клиент для таких API, следуя этим шаблонам.

Testing a Feature with Rails and RSpec: A deep dive — кто, как не Ruby-разработчики знают о важности тестирования кода. В статье предлагаются туториалы по написанию функциональных тестов на RSpec.

OOП трюки — мини-серия по написанию поддерживаемого объектно-ориентированного кода, по словам автора, без излишних страданий:

Security and Performance

Untangling Ruby Threads — автор делится мнением об использовании потоковом в Ruby, о случаях, когда использование потоков может сделать ваш код более эффективным, не добавляя дополнительной сложности.

Faster Rails: Is Your Database Properly Indexed? — статья является одной из серии Faster Rails, и позволяет понять, что делает Rails медленным и как на это влияют индексы базы данных.

The hidden cost of the invisible queries in Rails — Ruby on Rails позволяет создавать веб-приложения легко, без глубокого понимания используемых технологий. Автор предлагает разобраться какие бывают скрытые издержки невидимых запросов в Rails, говорит об ошибках начинающих специалистов и предлагает их варианты решения.

Building a Rack::Attack Dashboard — как с помощью Rack middleware Rack::Attack!!! предотвратить DDoS атаки и блокировать все «мутные» запросы.

Ruby Backend Performance Getting Started Guide — некоторые советы и рекомендации по поиску проблем с производительностью в приложениях, а также практические рекомендации по созданию собственного подхода.

Don’t Use Objects as Hash Keys in Ruby* — хеш-ключи были оптимизированы для символов и строк в Ruby, которые технически являются объектами. В статье показана разница, которая происходит при использовании других объектов в качестве хеш-ключей. Есть случаи, когда это имеет большое значение.

Postgres tips for Rails developers — здесь вы найдете несколько советов, которые помогут вам в отладке и повышении производительности базы данных вашего Rails-приложения.

Fighting the Hydra of N+1 queries — в статье говорится о проблеме запросов N+1 в Ruby on Rails и как с ней бороться.

RailsConf 2017

Railsconf 2017: The Performance Update — краткое изложение всех связанных с Ruby выступлений или разговоров, которые были у Nate Berkopec на тему Performance Update во время RailsConf 2017.

Crafting Better Code Reviews — адаптированная и обработанная информация о Code Review, первоначально приведенная на выступлении RailsConf 2017.

Разное

Programming with a love of the implicit — David Heinemeier Hansson (DHH) размышляет о неявном и явном коде, о среде программирования и с чем связана продуктивность разработчиков.

Top 30 Ruby on Rails Blogs & Websites For Ruby on Rails Developers — подборка самых лучших, по мнению Feedspot, блогов о Ruby on Rails.

Ruby on Rails: the Bad and Good parts — статья-размышление о светлом и темном, о добре и зле, о хорошем и плохом в мире Ruby / Ruby on Rails.

You know, for search.. — rubygems.org начали использовать Elasticsearch.

Infrastructure

Rails Application to Elastic Beanstalk — серия статей на тему Rails on Elastic Beanstalk:

Getting Started with Rails 5.x on Heroku — путеводитель от Heroku Dev Center, который охватывает тему Rails 5 на Heroku.

Послушать

The Bike Shed. 111: Trike Shed (Aaron Patterson) — На канале The Bike Shed ведущие Derek Prior, Sean Griffin, Amanda Hill с гостем Aaron Patterson обсуждают обновления Ruby и Rails и цель сделать Ruby 3 в три раза быстрее, чем Ruby 2.

RubbyLetter. Episode 9 — обзор событий в мире Ruby: выпуск Sinatra 2.0, индексирование баз данных, Rails 5.1, RSpec + Rails и всякое другое.

Ruby Rogues # 311: Data Corruption in Rails with Peter Bhat Harkins — подкаст представляет Data Corruption в Rails с Peter Bhat Harkins, который провел 5 лет, занимаясь консультацией, и теперь руководит консалтингом для компаний SAAS в Revenue.systems.

Посмотреть

Confreaks.TV. RailsConf 2017 — подборка докладов, тематические сессии, воркшопы и другие выступления энтузиастов, практиков на тему Ruby on Rails на ежегодной конференции RailsConf 2017, которая прошла в конце апреля.

Две части скринкаста, о том, как использовать VueJS в качестве альтернативы Cocoon и другим методам построения динамических вложенных форм с помощью Rails:

Bootstrap Framework and Ruby on Rails — скринкаст о том, что использование Bootstrap в Rails приложении стало намного проще и удобнее.

Ruby Melbourne: Rails and the client by Chris D’Aloisio — личный опыт спикера о работе с клиентом, извлеченный во время создания первого приложения формата fullstack: как общаться, как определить цели и подход в проекте, как помочь клиенту достигнуть желаемого результата и объяснить ему динамику работы и чего ему стоит ожидать от команды разработчиков.

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

Rails 5.1 — серия статей от BigBinary о Rails 5.1.

What’s new in Rails 5.1 — перечисление некоторых усовершенствований в Rails 5.1, таких как отсутствие Rake команд, поддержки Yarn и Webpacker и других функциональных няшек :)

RSpec 3.6 has been released — новая версия RSpec 3.6 включает в себя фиксы багов, автоматическую установку разноцветного вывода, если RSpec выводит на терминал tty, улучшенные сообщения об ошибках и еще разные мелкие доработки.

Rails 5.0.3 and 5.1.1 have been released — в основном исправления ошибок, каждый changelog приводиться по ссылкам в описании.

GitHub Marketplace — GitHub запустил маркетплейс с инструментами для создания и улучшения рабочего процесса. Маркетплейс предлагает находить приложения для использования в процессе разработки, от интеграции с CI серверами до управления проектами и анализом кода.

Сейчас есть приложения в следующих категориях:

Это только начало, дальше будет больше.

GitHub::Polyfill: Polyfill implements newer Ruby features into older versions — GitHub::Polyfill реализует новые функции Ruby в более старых версиях.

GitHub::RailsPanel: Chrome extension for Rails development — GitHub::RailsPanel — это расширение Chrome для разработчиков на Rails, которое положит конец долгому исследованию development.log.

GitHub::Curated list: Resources for machine learning in Ruby — список полезных ресурсов на тему машинного обучении с использованием языка программирования Ruby.

RubyGems 2.6.12 Released — обновленная версия 2.6.12 включает в себя в основном фикс багов.

What’s new in Bundler 1.15? — небольшие исправления в предыдущей версии, улучшение скорости, плюс новые команды.

SINATRA TWO POINT OH! — релиз Sinatra 2.0 включает следующие гемы:

  • sinatra: v2.0.0
  • sinatra-contrib: v2.0.0
  • mustermann: v1.0.0
  • mustermann-contrib: v1.0.0
  • rack-protection: v2.0.0

GitHub::Jalkoby: Squasher — гем Squasher сжимает старые миграции в приложении Rails в одну команду.

GitHub::Shopify: Semian — библиотека от Shopify для защиты вашего Ruby приложения от медленных внешних сервисов.

CanCanCan 2.0 is out — вышла новая версия CacCanCan. В новой версии есть важные изменения, но, как заявляют авторы, очень мало новых фичей.

GitHub::Shiroyasha: Factory_girl_instruments — инструмент для отслеживания и отладки моделей Factory Girl.

GitHub::Progapandist: Rubotnik-boilerplate — шаблонный «bot-end» фреймворк, чтобы быстро разработать собственный чатбот для Facebook Messenger на Ruby с нуля.

GitHub::Thoughtbot: Administrate — фреймворк для создания панелей администрирования в Ruby on Rails приложении. Тем не менее, авторы фреймворка предупреждают, что версия находится на этапе пре-1.0, и иногда могут быть внесены изменения в API. Обратите внимание на пометки о выпуске важных обновлений.

GitHub::LIQIDTechnology: Methodobject — позволяет реализовывать Method Object паттерн в Ruby приложениях.

GitHub::Jeremyevans: Rodauth — система проверки подлинности и управления учетными записями для Rack приложений. Он построен с использованием Roda и Sequel, но его можно использовать и с другими web-фреймворками, библиотеками баз данных и базами данных.

Книги

Релизы

Ruby on Rails Developer Complete Video Course — 25 июня от издательства Pearson Learner Community выходит обучающий курс Ruby on Rails Developer. На курс открыт предзаказ.

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

Рекомендуемые

Learn API Development with Rails 5 — издание по изучению разработки API с помощью Ruby on Rails. Бесплатный курс занимает шесть недель, а для нетерпеливых есть платная PDF версия доступная в мгновение клика.

Ruby For Beginners: Your Guide To Easily Learn Ruby Programming in 7 days — книга от iCode Academy призвана стать полноценным гидом для новичков в программировании на Ruby. Можно приобрести как в печатном, так и в Kindle-издании.

Practicing Rails. Learn Rails Without Being Owerwhelmed — Justin Weiss четко объясняет точный подход к изучению Ruby и Rails. Вы получите всю необходимую вам информацию для перехода от учебника к построению приложений. Для сомневающихся в покупке, на официальном сайте можно получить сэмпл из 32 страниц.

Agile Web Development with Rails 5.1 — новая версия книги, полностью обновлена для Ruby on Rails 5.1 и Ruby on Rails 2.4 с информацией о тестировании системы, Webpack и расширенном JavaScript.

Fearless Refactoring. Rails Controllers — книга от компании Arkency хоть и не новая но содержит полезные знания о том как правильно организовывать контроллеры в Rails приложении. На официальном сайте доступна в форматах PDF, epub и mobi.

События

Ruby Meditation #16 — в этот раз митап собирает фанатов Ruby в Одессе 15 июля. Расписание пока ожидается, но еще можно заявить себя в качестве спикера.

Курсы

Pivorak Ruby Intensive Course for beginners — с начала июня по конец июля во Львове Pivorak при поддержке Kottans запускают бесплатные курсы по изучению Ruby и Ruby on Rails. Набор уже закончился, но все события курсов можно отслеживать на сайте и на страничках компании в соцсетях.

Касательно тем/материалов/ивентов, которые стоит добавить в следующий выпуск дайджеста, пишите в комментариях или на volodymyr.vorobiov@rubygarage.org.

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn

Похожие топики

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Обзор шикарен, спасибо большое !

Интересно, насколько широко в веб разработке на руби используется Sinatra (ибо ИМХО круто, что он таки развивается и что 2-я версия вышла).

Подписаться на комментарии