Всем привет! Я работаю в AT Consulting и представляю команду разработчиков портала Beeline.kz, который мы пишем на Ruby on Rails. Поскольку информация в нашей сфере быстро устаревает, приходится постоянно следить за новостями и обучаться новым технологиям. По мере накопления новостей и полезных материалов, связанных с Ruby, я буду публиковать Ruby-дайджест.
Большинство материалов, которые я собрал в дайджесте, написаны на английском, но я надеюсь, что это не проблема, ведь первый шаг к Ruby – это изучение языка.
Почитать
- Generational GC in Python and Ruby – автор Ruby Under a Microscope сравнивает сборщик мусора Ruby и Python
- Cutting Corners or Why Rails May Kill Ruby – нашумевшая статья с критикой the Rails way и причинах уменьшения сообщества
- Avdi Grimm — Ruby is defined by terrible tools – депрессивная статья Avdi Grimm о состоянии инструментария в Ruby-коммьюнити
- Implementing Lazy Enumerables in Ruby – глубокий материал об Enumerable перед выходом книги «The Ruby Closures Book»
- Bringing the best of Bash scripting to Ruby
- Rails Test Types and the Testing Pyramid – адаптация пирамиды тестов Мартина Фаулера под терминологию Rails
- Advanced Ruby Hash Techniques
- Replace CoffeeScript with ES6 – сравнение ES6 и Coffee от thoughtbot
- React + Flux Backed by Rails API – описание опыта внедрения React + Flux с API на рельсах. Вторая часть статьи – здесь, а третья – здесь
- How Bundler Works: A History of Ruby Dependency Management – интересный пост про историю Bundler, также можете посмотреть выступления Aaron Patterson (одного из основных контрибутеров) на эту тему
Посмотреть и послушать
- GORUCO 2015: Nate Berkopec: Rails 5, Turbolinks 3, and the future of View-Over-the-Wire (14:21)
- GORUCO 2015: Eileen Uchitelle: How to Performance (25:43) – выступление Eileen Uchitelle из Basecamp о том, как она отслеживала и оптимизировала производительность Rails на примере тестов контроллеров и интеграционных тестов
- Rails 5's ActionCable and Websockets Introduction (18:48) – полноценное введение в вебсокеты в Rails в скринкасте от GoRails
- RailsConf 2015 — Internet of Things: Connecting Rails with the Real World (31:24) – интересный доклад с RailsConf о том, как уже сегодня, не покидая кресла и привычного рабочего окружения, заставить кофеварку готовить кофе. Будущее за IoT
- Ruby Tapas — Immutable Iterators with Tom Stuart – бесплатный выпуск скринкаста от Avdi Grimm о работе с неизменяемыми коллекциями с помощью Enumerator
- RWpod 25 выпуск 03 сезона – Rails vs. Lotus, Rack: Writing middleware, Gkv, ES6 Feature Performance, Spectacle и прочее
- RWpod 26 выпуск 03 сезона – Action Cable, JRuby — Just Ruby, The Evolution of Go, jQuery 3.0 Alpha, Incremental DOM, Pure UI и прочее
- Ruby5 Episode #569 – high performance caching with Readthis, colorized SQL logging backport for ActiveRecord, RMagick, Gemfiles, and Ruby operators.
- The Bike Shed 24: You Look Good in a Lab Coat (Richard Schneeman) – обсуждение использования памяти в Ruby, горизонтального масштабирования и open source
Обучающие материалы
- Speed Up Your Rails App by 66% — The Complete Guide to Rails Caching – пост Nate Berkopec с множеством практических советов о том, как заставить ваше Rails приложение отвечать за 50-100мс
- An introduction to unix sockets in Ruby
- Getting started with Rails 5's ActionCable and websockets – отличное введение в ActionCable для начинающих
- Running a Rails Development Environment in Docker
- The Rubyist’s Guide to Environment Variables – рассказ разработчиков Honeybadger о переменных окружения, а в продолжении статьи они уделяют внимание безопасности
- 4 Easy Ways to Speed Up Your Rails App
- Writing Smart Migrations: References, Reversible, and Indexes
- What is a Gemfile – подробная статья про Gemfile
Релизы, обновления, нововведения
- Action Cable alpha – DHH опубликовал альфа-версию и примеры использования нового API для WebSockets в Rails 5
- Evil Martians — Render views outside of actions – рассказ Злых Марсиан про разработку нового API для вызова метода render вне контроллера. Нововведение будет доступно в Rails 5 по-умолчанию, а пока можно использовать в виде гема
- Remove `Rack::Lock` from Rails
Must-read
- The Ruby Style Guide и перевод – разве можно писать на Ruby хорошо, не прочитав это?
- Architecture the Lost Years by Robert Martin — Ruby Midwest 2011 (1:06:38) – эпичное выступление Роберта Мартина с критикой Rails Way, краткой историей ООП и интересными собственными предложениями относительно архитектуры приложений
- RailsConf 2014 — All the Little Things by Sandi Metz (38:46) – очередное блестящее выступление Sandi Metz о пользе головы при ОО разработке
- Advanced Caching in Rails – серия статей Adam Hawkins, которая научит вас всему, что связано с кэшированием в Rails приложениях
- Ruby in Production: Lessons Learned – все, что нужно знать о деплое Rails приложений + шаблон на гитхабе
- 7 Patterns to Refactor Fat ActiveRecord Models – без этого ваши приложения скоро начнут доставлять вам боль и страдания. Также, доступно видео
Встречи и конференции
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Комментарии (15)
chernish2
22.07.2015 14:23Отлично, это очень полезно! Буду изучать! Благодарю и подписываюсь на Ваши публикации.
Проголосовал что всего должно быть больше, и русскоязычного и английского, и подкастов и текстов.
mukizu
22.07.2015 16:44>Ruby is defined by terrible tools
В первом же абзаце ссылается на то, что java/c# итп есть IDEA и ее производные, упуская из внимания, что они и для ruby по этой же ссылке по сути.
В дальнейшем автор правда снизошел и до RubyMine, который его все равно не устраивает и вообще «прошлый век».
Странные люди.
printercu
23.07.2015 08:28Спасибо, очень интересно! Скажите, вы сами разделяете точку зрения статей «Cutting Corners or Why Rails May Kill Ruby», «Ruby is defined by terrible tools»?
Bikolya Автор
23.07.2015 12:07Рад стараться.
В первой статье есть ряд справедливых утверждений. Мне кажется, что все не так плохо и стали появляться альтернативы (Volt, Lotus), а значит кроме тех, кто покидает коммьюнити есть и те, кто его старается развивать.
По поводу второй, мне кажется, это все зажравшиеся разработчики на Smalltalk. Avdi недавно публиковал скринкаст про процесс разработки на нем. Я вырос уже во времена Ruby, может быть привык, но для моих задач мне хватает существующих средств разработки и отладки (хорошее видео на эту тему: https://youtu.be/4hfMUP5iTq8). Конечно, мой пул задач значительно отличается от Avdi и с его опытом явно виднее, но эта статья получилась довольно сумбурной и однобокой.zverok
23.07.2015 12:28+1Про статью Авди: это же не критика вообще.
Это констатация факта, и факт заключается не в том, что «инструменты у Руби какие-то плохие», а в том, что «культура разработки на Руби выросла (во многом) из недостатка мощных инструментов (которые есть у многих других языков». Мне кажется, что это довольно свежая и интересная мысль.
The point of all this, you ask? Programming languages cannot be considered separately from their ecosystems.
Bikolya Автор
23.07.2015 12:38Вероятно, Вы правы. Он как раз это пояснил в EDIT 3. Не благодаря, а вопреки.
printercu
23.07.2015 13:01-1Просто последнее время все больше таких статей попадалось, и как по мне так это просто нытье. Возможно, они кому-то и были полезны, но мне такие статьи кажется вредными. Я бы не стал делиться такими :) Остальной материал — классный!
Если по существу: смешно стало, когда дошел до момента, когда он «неожиданно узнал, что try это тоже из AS». Странно, что даже в комментариях никто не вспомнил про each_with_object, который добавили в язык, хотя изначально это был тоже манкипатч из AS. Идея с pluck, мне тоже сначала не очень понравилась, наверное, я так и продолжу писать map. Но почему бы не попробовать — многие штуки в рельсах не приживались, и их выпиливали через какое-то время.
justCxx
23.07.2015 15:11+1Как раз начал изучать Ruby недавно — язык мне понравился, хоть сначала и немного напрягал олдскульными end'ами и непонятмыми 'блоками', но привык очень быстро, язык действительно интересный и как о нём часто говорят «веселый» и «приносящий удовольствие». За дайджест спасибо, буду дальше внедряться в культуру языка.
Arefiev
28.07.2015 12:10+1Спасибо, очень хороший дайжест.
Я вроде сам слежу за всеми материаами, где-то треть увидел впервые.
arbox
Очень полезное начинание! И даже если будут комментарии «Если ты не читаешь на английском, то ...». Обязательно продолжайте!