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

22 октября, Москва

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

Спикеры

Yukihiro Matsumoto

Создатель Ruby.

Sean Griffin

Rails committer, maintainer of Active Record, Shopify.

Steve Klabnik

Rails и Ruby committer, Rust core team.

Akira Matsuda

Rails committer, Ruby committer, Haml committer, creator of widely used Rails plugins.

Zach Briggs

JavaScript practice lead at TableXI.

Борис Кузнецов

Тимлид в Evrone.

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

Sidekiq и Hanami contributor.

Татьяна Васильева

RubyMine Product Marketing Manager в JetBrains.

Кир Шатров

Production Engineering (SRE) в Shopify.

Алексей Тактаров

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

Антон Черепанов

Full Stack и DevOps Engineer в Evrone.

Владимир Дементьев

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

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

Developer Advocate в GitLab.

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

Разработчик в Rambler&Co.

Павел Якшанкин

Ruby-разработчик в компании VoltMobi.

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

Ruby-разработчик в компании Qlean.

Илья Зыкин

Developer в Toptal.

Дмитрий Солдатенков

Технический директор в Tau Technologies.

Сергей Долганов

Разработчик в Evil Martians

Станислав Спиридонов

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

Михаил Тараскин

Ruby-разработчик в Rambler&Co

Программа

Поток 1 Поток 2
9:00
10:00
MAINTAINING SUCCESSFUL OPEN SOURCE PROJECTS

Rails is in a transitionary period. We've moved from being "hip" and "cool" to being a mature platform for applications. The heart of Ruby and Rails is in its community, however. We'll look at what the project has done right, what needs to be improved, and how to keep Rails relevant moving forward.

11:00
KEYNOTE

11:45
12:15
RODAUTH, DEVISE AND YOU

Любое веб-приложение не может обойтись без авторизации. Кто-то пишет ее с нуля, а кто-то использует готовые решения. Сегодня мы поговорим о таких решениях — в частности, о rodauth.

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

12:45
ANYCABLE, ИЛИ ACTIONCABLE ДЛЯ ВСЕХ

ActionCable – одно из самых примечательных нововведений Rails 5, которое буквально всколыхнуло Rails сообщество: статьи, инструкции по применению, "лайки" и "репосты" в Twitter. Это не удивительно: минимум настройки сервера, использование бизнес-логики (и даже шаблонов!) в _каналах_, JS-клиент, который просто работает – это пункты "за".

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

А теперь давайте представим, что никаких "против" нет, а есть _идеальный_ ActionCable с приятным Rails интерфейсом и производительностью и надежностью Erlang/Elixir приложения (с "2 million connections"). Я хочу представить свою попытку "приблизиться к _идеалу_" – AnyCable.

13:15
JAVASCRIPT FOR RAILS DEVS

Frontend JavaScript is a swampland of buzzwords, leaky abstractions, and complicated toolchains. Lucky for you and me, there are some simple techniques we can use to avoid the quagmire and build dynamic, modern user interfaces that solve human problems.

In this talk I’ll show you a technique for embedding JavaScript components inside of otherwise server rendered pages to create islands of interactivity. This can be done with your existing build system, adding nothing but 20KB of gzipped JavaScript and a dash of common sense.

13:45
14:45
EXPLORING RUBY THROUGH RUST

Ruby is implemented in C. Many of the classes we know and love are written in Ruby, but some are not. Learning about how MRI works can teach us interesting things about Ruby.

In this talk, Steve will show off a fun hack: re-writing parts of the Ruby interpreter in Rust. Along the way, we'll learn about the internals of Ruby, and how to get started hacking on the C code base.

15:45
DESIGNING AND IMPLEMENTING MODERN RAILS PLUGINS

16:30
17:00
МОНОЛИТНОЕ RAILS-ПРИЛОЖЕНИЕ И КАК С ЭТИМ ЖИТЬ

Сегодня Shopify - это самое старое в мире Rails приложение, кодовая база которого начинается в 2005, помнит Rails 0.9 и составляет 600 моделей и 800 контроллеров. Каждый день около 200 разработчиков работает над ним в одном репозитории.

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

17:30
ВОЗМОЖНОСТИ РУБИ В КОНКУРЕНТНОМ ПРОГРАММИРОВАНИИ

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

18:00
OSS. ЧТО В МЕШКЕ?

Я работаю над проектами с существенным legacy и большим количеством зависимостей. Пробегая время от времени по Gemfile'у проекта я замечаю, что некоторые из гемов мне совсем незнакомы. Нужно рано или поздно проверить эти зависимости и понять, актуальны ли они и насколько хорошо эти проекты поддерживаются — возможно, стоит избавиться от лишнего и тем более устаревшего кода. Такая же проблема возникает и при добавлении новой зависимости или выборе одного гема из множества аналогов.

Было бы здорово иметь возможность разом проверить, в каком состоянии работа над гемом, посмотреть его историю развития и поддержки на GitHub или RubyGems и сравнить с аналогами.Это мотивировало меня заняться исследованием — что на самом деле известно о гемах через публичные источники источники, такие как GitHub, RubyGems, RubyToolbox, Bestgems. Что из всей этой информации может быть полезным для принятия решения, а что — просто бесполезные числа.

Я покажу интересную инфографику о трендах и истории развития известных проектов (hanami, resque, delayed_job и других), расскажу об особенностях получения информации с указанных выше источников, а также нескольких способах ее классификации. И, конечно, проведу демо проекта, который стал результатом исследования и будет доступен для использования!

18:30
LT: БЕЗОПАСНЫЙ ВЫЗОВ МЕТОДОВ

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

18:40
LT: RHOMOBILE. РАЗРАБОТКА КРОСС- ПЛАТФОРМЕННЫХ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ

Вы любите Ruby и Ruby on Rails ? Вам нужно мобильное приложение на всех распространенных платформах ?

Есть решение - Rhomobile. Продукт с восьмилетней историей и полностью open source. Вы можете легко создавать кросс-платформенные гибридные мобильные приложения. Все как с Ruby on Rails - интерфейс на HTML/CSS/JS, а логика и работа с данными на Ruby, только сервер не удаленный, а локальный прямо на самом устройстве. Поддерживаются iOS, Android и все еще распространенные в корпоративном секторе WinCE/WM. В докладе на примере простого приложения я покажу как это работает.

9:00
10:00
11:00
11:45
12:15
RUBYMINE TIPS&TRICKS

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

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

12:45
ЗАДАЧИ КОМБИНАТОРНОЙ ОПТИМИЗАЦИИ ИЗ РЕАЛЬНОЙ ЖИЗНИ

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

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

13:15
GETTING STARTED WITH GITLAB CI

Continuous Integration в 2016 году - это как Version Control в 2006. Если вы до сих пор не успели разобраться ни с одной CI-системой - этот доклад для вас.

GitLab - опенсорсный проект на Ruby on Rails для хранения вашего кода и работы с ним. GitLab CI не сложен, не требует дополнительной установки и настройки. Плюс он бесплатен на GitLab.com, даже для приватных проектов.

В докладе я на примерах покажу как настраивать GitLab CI для самых разных сценариев: от прогона тестов и деплоя, до сложных сценариев с несколькими параллельными шагами.

13:45
14:45
CОВРЕМЕННЫЙ RPC В RUBY

Сделаем обзор современных технологий для создания RPC систем: grpc/protobuf и apache thrift. Рассмотрим принципы построения внутренней архитектуры сервисов (сервер - сервер).

Protobuf, как новый формат обмена структурированными данными, полезен при проектировании сервисно-ориентированных систем (SOA). Он бинарный, кроссплатформенный, быстрый, структурированный, обратносовместимый и может послужить хорошей заменой JSON’у в коммуникациях сервер-сервер.

15:15
ПРОЕКТИРОВАНИЕ МОНОРЕЛЬСОВОГО ПРИЛОЖЕНИЯ В ЭРУ МИКРОСЕРВИСОВ

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

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

15:45
SERVERLESS ARCHITECTURE AND AWS

Serverless Architecture позволяет создавать и запускать приложения и сервисы без необходимости управления инфраструктурой. AWS имеет большое кол-во сервисов, используя которые можно построить многие компоненты системы с использованием бессерверной архитектурой.

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

16:30
17:00
СЕРВЕРНАЯ РАЗРАБОТКА С УДОВОЛЬСТВИЕМ: RUBY ON RAILS ДЛЯ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ НА ПРИМЕРЕ ЯКИТОРИИ

На примере платформы, разработанной для московской сети ресторанов Якитория, расскажу, как мы создали уникальную для рынка систему, которая пронизывает все бизнес-процессы большой компании - от заказа в мобильном приложении, минуя колл-центр и менеджеров ресторанов, до отслеживания координат курьеров.

На конкретном примере слушатели познакомятся с особенностями серверной разработки на Ruby on Rails под мобильные приложения, узнают, как решать нестандартные задачи и проектировать API для мобильных приложений, проводить мониторинг работы платформы, а также выяснят, в каких направлениях может развиваться Ruby-разработчик в мобильном продакшене.

17:30
ДАЙТЕ ФРОНТЕНДУ В RAILS ВТОРОЙ ШАНС!

Ах, какие интриги происходят во фронтенд-коммьюнити в последние годы! Сложно сказать, это ли усталость или просвещение (fatigue or enlightenment) от JavaScript, ясно одно — фронтенд-разработка несется впереди планеты всей со скоростью сверхзвукового локомотива. В то же время бизнес и проекты живут обычной жизнью. Подходы к разработке фронтенда в Rails безнадежно устарели: сборка ассетов через Sprockets — это долго, неудобно, негибко.

В своем докладе я бегло затрону текущее состояние фронтенда и расскажу об остро стоящих проблемах сборки ассетов в Rails. Проведу эксурс в современные системы сборки Webpack, Gulp, Brunch и Rollup и покажу, как они могут быть интегрированы в экосистему Rails на примере реальных проектов. Доклад будет полезен бекенд и фронтенд разработчикам, а также может быть интересен руководителям проектов для поднятия общего представления процессов внутри команды.

18:00
DEPLOY.RB

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

В своей презентации я расскажу о своей новой open source инициативе, которая должна помочь разработчику запустить базовое Rails 5 приложение в продакшн режиме быстро и с минимальными усилиями.

Партнеры

Конгресс-центр Технополис
Волгоградский проспект, 42к5

Спасибо, ваши данные отправлены!

Мы свяжемся с вами в течение суток, чтобы подготовить документы для участия в конференции.

Спасибо, ваш билет оплачен.

До встречи на конференции!