RAILSCLUB 2015

Главное Ruby-событие 2015 года

26 сентября, Москва

Конференция RailsClub — это отличное место, где можно получить новые знания, пообщаться с коллегами и звездами Ruby, узнать из первых рук, как будут развиваться Ruby и Rails, прокачать свои навыки и вдохновиться на следующий год. Будем обсуждать проектирование, разработку, тестирование, отладку, оптимизацию под большие нагрузки, масштабирование и эксплуатацию RoR проектов.

СМОТРЕТЬ ВИДЕО

Спикеры

Koichi Sasada

Member of Matz's team in Heroku, director of Ruby Association.

Claudio Baccigalupo

Rails contributor, a member of the Rails Issues team.

Sam Phippen

Member of the RSpec core team, developer at Fun and Plausible Solutions.

Bozhidar Batsov

VP of Engineering Toptal, автор RuboCop и редактор community-driven Ruby and Rails style guides.

Андрей Куманяев

Разработчик в Coub.

Кирилл Шатров

Разработчик в Evil Martians, мейнтейнер Capistrano и Sorcery.

Тимофей Цветков

Toptal Core Team, analytics department.

Иван Немытченко

Software developer & IT events enthusiast.

Cамат Галимов и Борис Горячев

Meduza.io.

Cемен Багреев

Руководитель направления разработки Ruby, Rambler&Co

Александр Кириллов

Разработчик в Evrone.

Анна Щербинина

Лид веб команды в Artec Group.

Кирилл Горин

Разработчик в Toptal

Андрей Дерябин

Тимлид Evil Martians, один из марсианских долгожителей.

Владимир Ярцев

Технический директор, Cloud Castle (LA unit)

Николай Биенко

Разработчик в AT Consulting

Антон Давыдов

Sidekiq contributor,
@rubyunderhood curator

Николай Рыжиков

Техлид Health Samurai, активист
питерского Ruby & Clojure сообществ.

Станислав Герман

Ведущий инженер-разработчик в Rambler&Co

Егор Хомяков

Консультант по безопасности в Sakurity.

Программа

Поток 1 Поток 2
9:00
10:00
RAILS 5: AWESOME FEATURES AND BREAKING CHANGES

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

Rails API, ActionCable, Turbolinks 3 — лишь немногие из изменений, анонсированных в Rails 5. Как программисты могут подготовиться к будущему, не ломая свой существующий код?

В своем выступлении Клаудио расскажет об усовершенствованиях, которые ждут нас в Rails 5, объяснит мотивы рельсовой команды и покажет, как плавно перевести приложения и гемы с Rails 4.2 на Rails 5.0.

11:00
PERFORMANCE IN THE DETAILS: A WAY TO MAKE FASTER RUBY

Команда Матца в Heroku работает над улучшением качества CRuby/MRI. Качество можно определить по разному, например, как стабильность, низкий уровень потребления ресурсов и, конечно, скорость. Основная задача Коичи — ускорить Ruby.

Но единственно верного решения для разгона интерпретатора Ruby не существует. Вместо одного решения предлагается набор техник для улучшения производительности Ruby. В этом выступлении он продемонстрирует последние достижения команды.

11:45
12:15
LAMBDA AND KAPPA ARCHITECTURES IN RUBY ON RAILS

Сегодня данные — один из самых ценных ресурсов, и грамотный анализ данных играет ключевую роль в успехе проекта. Не важно, используете ли вы алгоритмы машинного обучение чтобы построить более умное и удобное для пользователей приложение, или строите финансовые или биржевые отчеты для стэйкхолдеров. Вам нужно осуществлять над данными преобразования и вычисления. Такие приложения могут быть спроектированы в классическом RoR-стиле. А лямбда и каппа архитектура — это паттерны для построения приложений, обрабатывающих данные.

Топтал — постоянно растущая компания, цель в 2015 — доход в $100M. Чтобы достичь этой цели нужно постоянно улучшать процессы, KPI и конечно, приложение. Искать подводные камни и точки роста, путем постоянного мониторинга процессов и анализа данных.

В докладе я расскажу основные принципы лямбда и каппа архитектуры и их реализацию в Ruby on Rails на примере нашего опыта в аналитической команде Toptal.

12:45
КАК ПЕРЕСТАТЬ БЫТЬ RAILS-РАЗРАБОТЧИКОМ

Долгое время мы думали, что мы другие. Что подход Rails настолько крут, что у нас нет целого класса проблем, с которыми возятся несчастные джависты.Но почему-то Rails-приложения с завидной регулярностью превращаются в неподдерживаемых монстров через полгода, а то и меньше. Выходит что мы не очень-то мы и другие :\Я поделюсь опытом переключения мозга из режима Rails-only-mode.

Как только перестаешь принимать на веру дефолтный способ организации кода в Rails, происходят замечательные вещи. В моем случае, новые роли объектов(Form objects, Services, Repositories) появились в коде естественным образом - как решения конкретных проблем, а не потому-что так завещал нам Мартин Фаулер. В итоге я получил гибкий(модульный, если хотите) код, который несложно поддерживать и модифицировать.

Коллеги, хватит перекладывать вину за бардак в коде на DHH! 2015 год - отличное время, чтобы стать кем-то большим, чем программист-на-фрэймворке.

13:15
RUBY OBJECT MAPPER: REVOLUTION

Ruby Object Mapper (ROM) - экспериментальная Ruby библиотека для реализации отображения «чистых» Ruby объектов, позволяющая без лишних ограничений использовать всю мощь выбранного хранилища данных.

ROM основан на нескольких концепциях, отличающихся от «нормальной» Ruby ORM. Я расскажу об этих концепциях, разберу особенности библиотеки и покажу как жить без Active Record.

13:45
14:45
MOCKING LANGUAGE

В докладе Сэм разберет разные способы, которыми мы изолируем объекты при совместном использовании. На первый взгляд все они делают одно и то же, но в каждом отдельном случае существует свой особенный язык, который сообщает о проблемах в структуре наших приложений.

Рассмотрим разные виды test double, используемых в приложениях, и поймем, что они говорят об архитектуре наших программ.

15:45
VOLT: RUBY WEB DEVELOPMENT RECHARGED

Volt is a reactive web framework where your Ruby code runs both on the server and the client. Sounds crazy, right? Trust me, though, this is pretty amazing and will blow your minds.

Volt is probably the most exciting web framework in the land of Ruby since Rails. In this talk we'll go over the core ideas and principles of Volt, the advantages of Volt over traditional web apps and we'll play with a few basic examples. We'll wrap with a look towards Volt's bright future. Above all else - we'll have fun!

16:30
17:00
МИКРОСЕРВИСЫ И ELIXIR ДЛЯ RAILS-РАЗРАБОТЧИКОВ

Рассказ пойдет о том, как мы разделяем наше основное rails приложение и создаем микросервис-архитектуру. Как за год было написано более 10-ти проектов разных уровней сложности, и чем мы руководствовались, когда это затевали.

Для нас зачастую выбор языка/фреймворка под проект чуть ли не сложнее, чем написание самого проекта, и в докладе мы постараемся объяснить целесообразность того или иного выбора(заранее признаюсь - в некоторых местах мы славно напортачили).

Также расскажем о случаях, когда лучше заблаговременно сойти с рельс и как себя при этом обезопасить. В конце доклада мы постараемся убедить вас попробовать elixir - прекрасный молодой функциональный язык программирования. На десерт несколько примеров, где он стал для нас right tool for the job.

17:30
BUILDING RAILSPERF, A TOOLKIT TO DETECT PERFORMANCE REGRESSIONSIN RUBY ON RAILS CORE

На примере бета-версий Rails 4.2 мы убедились, как часто в фреймворке Rails могут случаться регрессии производительности, и как легко они могут остаться незамеченными.

Проблема производительности и ее регрессий становится все более острой в Ruby-сообществе. Это подтолкнуло меня и других контрибьюторов Rails к разработке Rubybench, сервиса для поиска регрессий производительности в Ruby и Rails.

В своем докладе я рассмотрю регрессии производительности на примерах коммитов из Rails, расскажу о построении бенчмарков для Ruby приложений, и продемонстрирую Rubybench и его архитектуру.

18:00
LT: CRYSTAL

Crystal - компилируемый в нативный код язык. Как говорят сами разработчики, его синтаксис вдохновлен Ruby. Поэтому порог вождения для ruby разработчика не высок, и, действительно, глядя на код невольно возникает вопрос: это Crystal или Ruby?

Расскажу о реализации микросервиса на Crystal: сходстве и различи c Ruby, плюсах, минусах и использовании в production.

18:10
LT: ACTIVE SUPPORT INSTRUMENTATION

Все пользуются средствами мониторинга для Rails приложений, но не все знают, что они работают на основе встроенных в Rails инструментов. Active Support Instrumentation один из них. В этом докладе я расскажу как его использовать и как можно самому написать конкурента New Relic.

18:20
LT: PERSONAL HEROKU ADD-ON WITH DOCKER

В каталоге аддонов Heroku более 100 готовых микросервисов, но иногда подходящего аддона нет, а с Heroku уходить не хочется.

Одно из решений — Docker, который позволяет собрать микросервис, взяв за основу образ с Docker Hub. Вот только поддержка инфраструктуры микросервиса в этом случае ложится на плечи разработчика.

Я расскажу, как совместить удобство Heroku с гибкостью Docker, заставив микросервис вести себя как аддон Heroku.

18:30
LT: КАК НАЧАТЬ ПОГРУЖЕНИЕ В БОЛЬШОЙ ПРОЕКТ НА RAILS

Во время разработки большую часть времени мы не пишем, а читаем код, поэтому необходимо уметь делать это эффективно, а это особенно сложно, когда вы еще не знакомы с проектом.

Я шаг за шагом расскажу как войти в проект максимально быстро и эффективно, куда нужно смотреть в первую очередь, какие выводы можно cделать на основе увиденного и какие инструменты могут быть полезны на каждом из этапов.

18:40
LT: COMMAND QUERY RESPONSIBILITY SEGREGATION В RAILS ПРИЛОЖЕНИЯХ.

CQRS - подход к разработке, когда изменяющие состояние системе cущности, commans, отделены от не меняющих состояние, query.

Такой подход нельзя назвать только лишь паттерном, так как он влияет и на архитектуру приложения.

В данном докладе мы рассмотрим каким образом достигается разделение команд и запросов. Какой уровень разделения необходим в каком случае. Рассмотрим на примерах как мы используем CQRS в продуктах Рамблера.

18:50
LT: SIDEKIQ UNDER HOOD

Все мы знаем про sidekiq. Кто-то больше, кто-то меньше, но все, кто его использовал, могут сказать, что это надежный и быстрый инструмент для обработки фоновых задач. Кроме всего прочего, для sidekiq невероятно просто создавать различные плагины и всячески расширять его функционал.

Но вы когда-нибудь заглядывали под его капот?

Во время своего выступления я расскажу про архитектуру sidekiq, какая магия происходит между клиентским вызовом джоба и его выполнением. Расскажу, как работает мой плагин, собирающий всю необходимую статистику, и как вы можете быстро добавить любой недостающий вам функционал.

9:00
10:00
11:45
12:15
ИЩЕМ ГДЕ И ПОЧЕМУ PRODUCTION ПРИЛОЖЕНИЕ ТОРМОЗИТ

Многие из разработчиков мира Ruby on Rails знакомы с богатым набором инструментов для профилировали приложения в development среде. Зачастую, работа с этими инструментами заканчивается до/после выкатки фичи в production. Сначала все может работать хорошо и быстро, ну а дальше... как повезет.

В докладе я расскажу о том, как можно в production среде следить за показателями производительности приложений и отлавливать те самые кейсы, когда оно начинает вести себя не так, как хотелось бы.

12:45
ФП ДЛЯ РУБИСТОВ

Мульти-парадигменности не существует по определению! Ruby существенно объектно ориентированный и императивный язык, а значит он автоматически "наследует" все системные проблемы объектно-ориентированных и императивных языков: отсутствие теоретической основы, слабая модульность, сложная декомпозиция, плохая конкурентность. Многие ruby инженеры испытывают болезненные ощущения и фрустрацию, сталкиваясь с ними. Я поделюсь с вами своими мыслями о том, почему функциональная парадигма с подобными вопросами справляется лучше.

13:15
МИКРОСЕРВИСЫ В GETT: ОТКРЫТИЕ НОВЫХ НАПРАВЛЕНИЙ И РАБОТА ПОД НАГРУЗКОЙ.

Gett (ранее известный как GetTaxi), популярнейший сервис для заказа такси, в этом году не только вырос по бизнес-показателям, но и открыл новые направления деятельности (вертикали) — например, доставку еды и проведение работ на дому. Чтобы отвечать требованиям бизнеса по росту, и особенно — для возможности строить новые вертикали на существующих мощностях, архитекторы Gett начали перевод сервиса на микросервисную архитектуру.

В этом Gett помогала команда марсиан под руководством Андрея. За короткий срок у Gett получилось перейти от монолитной архитектуре к использованию микросервисов — в боевом режиме, в четырех странах (США, Великобритания, Россия, Израиль). Это позволило существенно ускорить и упростить работу над разработкой новых направлений.

Вместо теоретических рассказов о том, как здорово использовать микросервисы и почему все якобы непременно должны это делать, Андрей сконцентрируется на практике и боевом опыте. В докладе он расскажет про сложности, с которыми пришлось столкнуться при разработке микросервисов и способами их решения — реализация взаимодействия сервисов (средствами REST API), версионирование состояния системы, логирование изменений (стратегия COW), распределенное конфигурирование (ZooKeeper), работа с shared-частями микросервисов, развертвывание (Chef) и тестирование. Отдельно Андрей подробно остановится на реализации паттерна Circuit Breaker для решения проблем в канале связи между сервисами.

13:45
14:45
16:30
17:00
АУТЕНФИКАЦИЯ БУДУЩЕГО

Я расскажу про массу проблем современной аутенфикации по логинам и паролям, про минусы существующей "двух факторной аутенфикации" и про то как я пытаюсь это решить своим продуктом Труфактор.

17:30
ТЕСТИРОВАНИЕ И “SOFTWARE WRITER” ГОД СПУСТЯ

Год назад, во время открытия RailsConf 2014, David Heinemeier Hansson поделился с нами своими мыслями по поводу профессии инженера-­разработчика ПО (или “писателя ПО”, по его версии) и по поводу TDD. Вкратце, DHH высказался довольно резко в сторону TDD, аргументируя это тем, что TDD ломает дизайн, делая его необоснованно сложным для понимания, давая при этом ложное чувство уверенности, основанное на выдуманных показателях (coverage, ratio, speed).

Я примерил роль “Писателя ПО”. Следуя советам Дэвида, я старался тестировать всю систему, а не отдельные юниты, фокусируясь на интеграционных и “frontend” тестах. В процессе я столкнулся с непониманием некоторых коллег и бизнес лидеров. Мне пришлось развеять несколько мифов о тестировании, и я поделюсь этим опытом с другими разработчиками.

Кроме того, я узнал несколько трюков для ускорения тестов, освоил несколько новых инструментов для тестирования, которые и упомяну в своем докладе.

18:00

Партнеры

Контакты

+7 (912) 664-67-32 elena_nosuha
Конгресс-центр Технополис
Волгоградский проспект, 42к5
Схема проезда