Events

Feed icon 28x28
Download %2813%29 original

Video recording and production done by Rails Club.

Rails Club 2015 Schedule

September 26, 2015

( 20 available presentations )
Capture thumb
Rating: Everyone
Viewed 33 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

For a long time we thought that we are different. What Rails approach is so steep that we have a whole class of problems that poor potter dzhavisty.No reason Rails-applications punctually turned into monsters unsupported six months, or even less. It turns out that we are not very much we and others: \ I will share the experience of the brain switching from Rails-only-mode mode.

As soon as you stop taking for granted the default way to organize the code in Rails, wonderful things happen. In my case, the role of new objects (Form objects, Services, Repositories) appeared in the code in a natural way - as the solution of specific problems, not because-so told us to Martin Fowler. As a result, I got a flexible (modular if you want) code that is easy to maintain and modify.

Colleagues, enough to shift the blame for the mess in the code on the DHH! 2015 - the perfect time to become anything more than a programmer-to-proper framework.

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

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

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

Capture thumb
Rating: Everyone
Viewed 10 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

Gett (formerly known as Gettaxi), the most popular service for taxi, this year not only increased in business performance, but also opened up new lines of business (Vertical) - for example, the delivery of food and works at home. In order to meet business requirements for growth, and especially - for the opportunity to build new vertical at existing facilities, architects began Gett translation service on mikroservisnuyu architecture.

This Gett helped the Martians team led by Andrew. For the short term at Gett got to move from monolithic architecture to use mikroservisov - in combat mode, in four countries (USA, UK, Russia, Israel). It is possible to significantly speed up and simplify the development of new directions.

Instead of theoretical stories about how cool to use mikroservisy and why supposedly should certainly do it, Andrew will focus on practice and combat experience. In the report it will tell about the difficulties encountered in developing mikroservisov and ways of their solution - implementation of interaction services (means REST API), versioning system status, logging changes (COW strategy), a distributed configuration (ZooKeeper), working with the shared-parts mikroservisov, razvertvyvanie (Chef) and testing. Separately, Andrew will expand on the implementation of pattern Circuit Breaker to solve problems in the communication channel between the services.

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

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

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

Capture thumb
Rating: Everyone
Viewed 34 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

This talk is an investigation into the different kinds of ways we isolate objects from their collaborators. They all seem to provide similar capabilities but there is an underlying language that talks to us about different kinds of design smells that we might have in our applications.

This talk will cover the different kinds of test doubles that we use in our applications and what they indicate about the designs of our software.

Capture thumb
Rating: Everyone
Viewed 39 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

Heroku Matz team is working to improve quality of CRuby/MRI. Quality has several meanings, such as stability, low resource consumption, and of course speed. My main goal is to make faster Ruby.

However, we don't have one absolute solution to speed up Ruby interpreter. Instead of one solution, we introduce variety of techniques to improve Ruby's performance. In this talk, I will show you recent achievements by techniques in details.

Capture thumb
Rating: Everyone
Viewed 24 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

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!

Capture thumb
Rating: Everyone
Viewed 11 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

A year ago, during the opening RailsConf 2014, David Heinemeier Hansson shared with us his thoughts on the profession of engineer, software developer (or "writer on" in his version) and on the TDD. Briefly, DHH spoke quite sharply in the TDD way, arguing that TDD breaking design, making it unnecessarily difficult to understand, giving a false sense of confidence, based on the fictional figures (coverage, ratio, speed).

I tried on the role of "a writer for". Following the advice of David, I tried to test the entire system, not individual units, focusing on the integration and "frontend" tests. In the process, I encountered a lack of understanding of some colleagues and business leaders. I had to dispel a few myths about testing, and I will share this experience with other developers.

In addition, I learned a few tricks to speed tests, has mastered a number of new tools for testing, which will mention in his report.

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

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

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

Capture thumb
Rating: Everyone
Viewed 31 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

All use monitoring tools for Rails applications, but not everyone knows that they are working on the basis of built-in Rails tools. Active Support Instrumentation is one of them. In this report, I will tell you how to use it and how you can write to rival New Relic.

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

Capture thumb
Rating: Everyone
Viewed 17 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

I'll tell you about a lot of problems for modern authentication username and password, about the disadvantages of the existing "two-factor autenfikatsii" and about how I'm trying to solve their product Trufaktor.

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

Capture thumb
Rating: Everyone
Viewed 13 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

Nowadays it’s absolutely clear that data is one of the most valuable assets and thoughtful data analysis plays essential role in any company’s success. Whether you run machine learning algorithms to build smarter and more user friendly applications or to build financial and marketing reports for stake holders, you need to perform data transformations and calculations. Such applications can’t be designed in a classical Ruby on Rails way. Lambda and Kappa architectures are common patterns for building data processing applications.

Toptal is a constantly growing company and is on track for $100M in revenue in 2015. To archive this in Toptal, we’re constantly improving our processes, KPIs and of course, our application. We’re searching for pitfalls and places to improve by monitoring our processes and by analysing our data.

In this talk we will discuss main principles of Lambda and Kappa architectures and their implementations using Ruby on Rails based on Toptal’s analytics team experience.

Capture thumb
Rating: Everyone
Viewed 11 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

Multiparadigmality not exist by definition! Ruby essential object-oriented and imperative language, which means it automatically "inherits" all the systemic problems of object-oriented and imperative languages: lack of a theoretical framework, weak modularity, complex decomposition, poor competitiveness. Many engineers ruby experiencing pain and frustration when faced with them. I will share with you my thoughts on why functional paradigm with similar questions to cope better.

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

Capture thumb
Rating: Everyone
Viewed 9 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

Many of the developers of Ruby on Rails world are familiar with a rich set of tools for applications profiled in the development environment. Often, the work ends with these tools before / after rolling out features in production. First, all can work well and quickly, and then ... well, how lucky.

In the report, I will talk about how you can work in the production environment to monitor performance metrics and application to catch those most cases, when it starts to behave not as we would like.

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

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

Capture thumb
Rating: Everyone
Viewed 7 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

For example, Rails 4.2 we have seen, how often in the framework, Rails beta regression performance can occur, and how easily they can be overlooked.

The problem and its performance regressions is becoming more acute in the Ruby-community. It pushed me and other contributors to Rails development Rubybench, service to find regressions in performance of Ruby and Rails.

In his report, I will review the performance regression on the examples of the Rails commit, will talk about building a benchmark for Ruby applications and demonstrate Rubybench and its architecture.

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

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

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

Capture thumb
Rating: Everyone
Viewed 3 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

Crystal - compiled to native code language. As said by the developers, it is inspired by the syntax of Ruby. Therefore, the threshold for driving the developer ruby is not high, and, in fact, looking at the code for the question arises: is the Crystal, or Ruby?

I'll tell you about the implementation mikroservisa on Crystal: similarities and differences c Ruby, pros, cons, and used in production

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

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

Capture thumb
Rating: Everyone
Viewed 10 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

Each major release of Rails brings shiny new features and mild headaches for developers required to upgrade their applications and gems.

Rails API, ActionCable, Turbolinks 3 are only a few of the changes announced for Rails 5. How can programmers get ready for the future without breaking their legacy code?

In this talk, I will cover the improvements brought by Rails 5, explain the Core team’s motivations behind each feature, and illustrate the upgrade process to smoothly transition gems and apps from Rails 4.2 to Rails 5.0.

Capture thumb
Rating: Everyone
Viewed 2 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

The Heroku add-ons directory of more than 100 ready mikroservisov, but sometimes there is an appropriate add-on, and with Heroku not want to leave.

One solution - Docker, which allows you to collect mikroservis, based on the image of a Docker Hub. That's just the infrastructure support mikroservisa in this case rests on the shoulders of the developer.

I'll show you how to combine convenience with flexibility Heroku Docker, making mikroservis behave like Heroku addon.

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

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

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

Capture thumb
Rating: Everyone
Viewed 5 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

During development, most of the time we do not write, and read the code, so you need to be able to do this effectively, and it's especially difficult when you're not yet familiar with the project.
I tell you step by step how to join the project as quickly and efficiently where it is necessary to look first of all, what conclusions can be To make the on the basis of what he saw and what tools can be helpful at every stage.

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

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

Capture thumb
Rating: Everyone
Viewed 4 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

CQRS - approach to development, when changing the state of a system entity, commands The, separated by not changing the state, query.
Such an approach is not only the pattern, since it affects the application architecture.
In this report we will look at how to achieve the separation of commands and queries. What level of separation is required in any case. Consider the examples of how we use CQRS in Rambler products.

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

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

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

Capture thumb
Rating: Everyone
Viewed 9 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

Ruby Object Mapper (ROM) - Ruby library for experimental realization of display "clean» Ruby object allows without unnecessary restrictions to use the power of the selected datastore.

ROM is based on several concepts that are different from the "normal» Ruby ORM. I will tell you about these concepts, make out features of the library and show you how to live without Active Record.

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

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

Capture thumb
Rating: Everyone
Viewed 25 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

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

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

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

Capture thumb
Rating: Everyone
Viewed 11 times
Recorded at: September 26, 2015
Date Posted: February 4, 2016

All we know about sidekiq. Some more, some less, but all those who used it, can say that it is a reliable and fast tool to handle background tasks. In addition, for sidekiq incredibly easy to create a variety of plugins and strongly expand its functionality.

But have you ever looked under its hood?

During his speech, I will discuss the architecture sidekiq what magic happens between the client call Jobe and its implementation. I'll tell you how my plugin, collecting all the necessary statistics, and you can quickly add any missing functionality to you.

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

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

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