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

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

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

Спикеры

List batsov   %d0%ba%d0%be%d0%bf%d0%b8%d1%8f
Bozhidar Batsov

VP of Engineering в Toptal, Автор RuboCop и редактор Ruby и Rails style guides

List luka
Luca Guidi

Автор Hanami, веб фрэймворка для Ruby, DNSimple

List piotr  1
Piotr Solnica

Автор rom-rb и dry-rb, Icelab

List lrznej h
Richard Schneeman

2016 Ruby Hero. Топ 50 Rails contributors. Maintainer of Sprockets, Heroku

List chloe square
Nick Sutterer

Автор Trailblazer, Trailblazer

List 13718099 10209328905314615 2109575711 o
Кир Шатров

Production Engineer, Shopify

List 431703475 14483351201751170566
Антон Давыдов

Software developer. Open source enthusiast, Hanami core

List gyhqyzrrnfc
Андрей Молчанов

Software Developer, Evrone

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

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

List 803118681 17053652220582616746
Анна Щербинина

Teamlead, Artec3D

List profile
Никита Шильников

Dry-rb и Rom-rb , Core developer

List sobolev
Никита Соболев

Организатор elixir-lang.moscow, амбассадор Auth0

, Wemake.services

List sheglov
Александр Щеглов

Разработчик, VoltMobi

List tytin
Станислав Тютин

Разработчик, VoltMobi

List german
Стас Герман

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

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

Software Engineer, FindHotel

List integros
Александр Ермолаев

Руководитель разработки , Integros

Программа

Поток 1 Поток 2
09:00
10:15
Threads Aren't Evil

Okay, so threads are pretty evil. But they are also useful, and given the right development patterns, not impossible to work with. In this talk we'll look at some real world Ruby libraries where threads were applied to accomplish otherwise impossible tasks. We'll look at re-writing a real world library to support parallel execution by threads for performance gains. If you're not comfortable with the "T" word (threads), this talk is the perfect introduction to practical thread programming in Ruby

11:00
Rom-rb 4.0

We’ve come a long way with rom-rb and changed the way people can work with data in Ruby. In this talk I’ll introduce you to rom-rb and explain why this alternative way works better than Active Record. We’ll take a look at functional data processing, flexible data transformations, altering data using changesets and the importance of type-safety. You’ll see how rom-rb is evolving and where we’re going with this big effort!

11:45
12:15
Тесты тоже должны быть быстрыми

Тесты занимают важную часть разработки, особенно на Ruby и Rails. Как правило, мы мало уделяем вниманию организации кода тестов и их оптимизации. До тех пор, пока не замечаем, что тратим слишком много времени, чтобы увидеть зелёный цвет в конце тоннеля. Я хочу рассказать о том, как обнаружить проблемные места в тестах, показать способы их устранения, а также представить новый инструмент, который поможет вам в этом – TestProf.

13:00
Решаем проблемы типа

Ruby — динамически типизированный язык, но это не значит, что в нем нет типов. Иногда мы хотим большей предсказуемости и очевидности от кода, но у нас нет инструментов для этого в самом языке. Речь пойдет о геме dry-types — одной из основных зависимостей dry-validation и ROM.

13:45
14:45
The Long Journey to Ruby Mastery

In this talk we'll examine the long journey from being a Ruby novice to achieving true Ruby mastery and will try to shorten it a bit for you by sharing some important insight. A Master Rubyist has a great theoretical foundation, relies on an extensive toolbox, has deep understanding of the core values and principles of Ruby and is always honing their skills. Perhaps you're telling yourself "Wow, this is pretty vague!", but if you attend this session I promise that you'll be enlightened, amused and you'll totally enjoy it! Sounds good? The great books will be part of the resources I'd suggest to people to level-up their skills.

15:15
Functional web with Ruby

Web applications are complex. MVC helps you to structure them, but you're still you're struggling with tangled dependencies, difficult reusability, byzantine patterns, hard to maintain model domains? What if you can have small, simple, and deterministic components that can be easily used (and reused) in your web apps? Let's see how functions, FP/OOP blending, data transformations, immutability, Dependency Injection can help to solve these problems. With this talk you'll learn how Hanami makes these principle easy to use, and what's the future of this uprising Ruby web framework.

16:00
Ruby Is Dead

Having a simple programming language doesn't mean the applications will be simple. Higher abstractions are needed - but Ruby doesn't seem to give us those! Here is a tour through other languages, and how we can have nice things in Ruby

16:45
17:15
Архитектура фреймворка фоновых задач

Наверное, каждый Ruby-разработчик использовал очередь задач и Sidekiq. Однако в сложном проекте фоновые задачи это гораздо больше, чем просто очередь: это приоритетизация очередей, ограничение ресурсов, "уникальные" задачи и батчинг на группы задач. Как обеспечить "справедливую" очередь на случае когда один клиент добавил миллион задач, а другой - всего одну? Что происходит с задачами, когда мы хотим остановить воркер после выкатки новой версии приложения? Что делать с задачами, которые проходят по всем записям в БД и занимают неделю? В докладе поговорим о том, что скрывается под капотом всех этих фич - и как некоторые из них реализует Sidekiq (Pro). Послушав доклад, эти фичи перестанут быть для вас магией и станут обычными структурами данных.

17:45
Конфигурирование приложений: True-way

Невозможно представить себе проект, в котором не было бы хотя бы одно строчки конфигурации. Она используется для решения ряда задач и предназначена не только для хранения статических параметров и секретных данных. Это мощный инструмент, который позволяет, в том числе, влиять на работу приложения... Мы всегда сталкиваемся с конфигурацией и она должна, как минимум, не вставлять палки в колеса, как максимум, помогать. В докладе систематизируем основные подходы, покажу какие из них устарели и почему не способны ответить всем вызовам современной разработки. Покажу на проблемы, которые стали причинять боль в больших проектах, распределенных проектах и, тем более, в микросервисах на руби. Выведу на чистую воду нашу лень, покажу с чем не стоит мириться. Расскажу о том, как можно посмотреть на конфигурацию с другой стороны, как облегчить свою жизнь. Расскажу каких правил стоит придерживаться и что делать не стоит. Расскажу про изменение конфигурации в рантайме, отвечу на вопросы 'Зачем?', 'Как?' и 'Какие проблемы можно огрести?'. А также скажу и покажу, почему конфигурация - это не только способ преобразования магических строк и переменных окружения в понятные нотации, причем тут DI, Railway и подобные штуки.

18:15
Что нам стоит экосистему построить

Два года назад, работая над Hanami, я не подозревал, насколько важна экосистема для проекта. Каждый день в своей работе мы используем самые современные технологии: языки, фреймворки, плагины и другие продукты. Мы не задумываемся, сколько времени экономим благодаря развитой экосистеме и готовым решениям распространенных проблем. Например, многие любят Rails за возможность создать MVP в максимально короткие сроки. В этом заслуга не только самого фреймворка: вокруг Rails существует целая система гемов, а решения большинства задач уже описаны. Поэтому развитая экосистема важна для продукта, которым будет легко и комфортно пользоваться. Я поделюсь опытом создания экосистемы Hanami. Расскажу, как технология развивается благодаря ее окружению, на какие грабли мы наступили в процессе работы и с чего бы я начал разработку экосистемы, если бы вернулся на 2 года назад.

09:00
10:15
11:45
12:15
Elixir - не Ruby, а лучше

Один из создателей Rails - Jose Valim - создал свой язык программирования. Такой непохожий, но такой знакомый! Еще бы, ведь он частично вдохновлялся Ruby, когда создавал его. И многие стали считать язык Elixir - новым Ruby. А вот и нет! Elixir - принципиально другой язык, и непонимание различия подходов и принципов погубили уже не один проект. Предлагаю разобраться, что же за новые идеи нам предлагают.

12:45
Ruby приложения в кластере Kubernetes

Расскажем о разработке и поддержке отказоустойчивого масштабируемого кластера для Ruby приложений * Масштабирование приложений в кластере Kubernetes * Ruby приложения в Docker контейнерах * Ceph для распределенного хранилища и репликаций * Готовые облачные решения кластеризации контейнеров * Пример кластера для видео кодирования в Integros

13:15
Избавляемся от legacy-code вместе с Trailblazer

На конкретном примере вы поймете, как можно прийти на legacy-проект и не начать плодить такой же устаревший код, а начать делать хорошо, не сильно теряя во времени и не устраивая глобальный рефакторинг. На примере проекта ServiceGuru расскажем, как можно большой и старый проект эффективно развивать и одновременно рефакторить, используя Trailblazer. - Кратко о legacy, как появляется сложная структура, почему проекты, написанные на Rails + ActiveRecord быстро становятся сложно поддерживаемыми и как с этим бороться. - Что такое Trailblazer, как он появился, какие проблемы решает. Где его нужно использовать а где не нужно. Порог вхождения. - Как выглядит обычный рефакторинг. - Как мы проводим рефакторинг и одновременно разрабатываем новые фичи c Trailblazer. - Минусы Trailblazer. С какими проблемами придется столкнуться. В каких случаях не стоит использовать trailblazer. Что дальше? Webpacker. Краткий обзор в какую сторону смотреть для рефакторинга фронтенда

13:45
14:45
16:45
17:15
Лингвистическая относительность Ruby

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

17:45
Виртуальная машина Ruby

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

18:15
Сказ о синхронных и асинхронных парадигмах

Web основан на коммуникации: взаимодействие между сервисами, серверами, утилитами, классами в приложении. Изначально выделились две полярности, синхронное взаимодействие между компонентами и асинхронное. Очевидно, без синхронного взаимодействия не обойтись когда реакция напрямую связана с ответом, полученным на запрос. С асинхронными запросами тоже довольно просто, нам не важно когда они выполнятся, главное, чтобы были выполнены. Позже появились гибриды, которые семантически синхронны, а в реализации асинхронны. Как пример - общеизвестный лонг-пуллинг. Для асинхронных нередко указывается время за которое они должны отработать. Случается, что ответить надо нескольким клиентам, вместо одного. Каждый из типов имеет свои особенности, сильные и слабые стороны, которые мы рассмотрим. Но что если взглянуть на синхронность и асинхронность под другим углом?

Партнеры

Контакты

+7 (999) 112-53-89 elena_nosuha
Конгресс-центр Технополис
Волгоградский проспект, 42к5

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

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

К сожалению, произошла ошибка. Попробуйте еще раз.

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

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