Events

Feed icon 28x28
Screenshot 2014 12 27 at 12.06.00 pm original

Videos provided by Rails Club via their YouTube Channel

Rails Club 2014 Schedule

September 27, 2014

( 15 available presentations )
Screenshot 2014 12 31 at 11.43.36 am thumb
Rating: Everyone
Viewed 171 times
Recorded at: September 27, 2014
Date Posted: December 31, 2014

Производительность — одно из самых важных свойств любого приложения. Исследования показывают, что каждые 100 милисекунд задержки в скорости могут снизить продажи на 1%. Ruby не славится своей скоростью, но есть много вещей, которые мы можем сделать для оптимизации производительности нашего кода на Ruby. В этом докладе я покажу как правильно измерять производительность вашего кода, и мы обсудим разные техники, которые помогут сделать код быстрее и эффективнее использовать память.

Эрик занимается многочисленными Ruby опен-сорс проектами, включая RailsAdmin, Thor и Twitter gem. В 2014 году он стал Ruby Hero, а еще тренер в проекте Rails Girls Summer of Code. Работает в SoundCloud в Берлине.

Screenshot 2014 12 27 at 12.31.13 pm thumb
Rating: Everyone
Viewed 139 times
Recorded at: September 27, 2014
Date Posted:

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

Я хотел бы рассказать немного про ElasticSearch, Chewy и прагматичный подход к созданию инструментов и инфраструктуры.

Screenshot 2014 12 27 at 12.48.53 pm thumb
Rating: Everyone
Viewed 117 times
Recorded at: September 27, 2014
Date Posted: December 27, 2014

Архитектура системы это то, как мы разделяем систему на компоненты и определяем связи между ними. Есть взгляд на архитектуру - как на набор ограничений, который мы накладываем на все возможные вариации компонентов и связей. В основе любой архитектуры всегда лежит ряд предусловий-предположений, а также список желаемых характеристик системы. Однако не все желаемые характеристики совместимы и приходится делать сознательный или неосознанный выбор и чем-то жертвовать.Ruby On Rails предлагает нам слоистую архитектуру движимую модельным слоем. Мы начинаем с модели предметной области и через нее выражаем поведение системы, а слои накладывают простое ограничение на вертикальные связи (нижележащий слой не имеет право знать про вышележащие). Характеристиками такой архитектуры является простота и скорость разработки. Предусловиями - возможность создать модель (не допустив грубую ошибку) и относительно небольшой размер разрабатываемой системы.
Как быть если для вашего проекта эти предпосылки не верны?
Как сделать инженерный выбор и не упереться в ограничения своей архитектуры?
Я расскажу про альтернативные подходы, область их применимости, достоинства и недостатки.

Screenshot 2014 12 27 at 12.36.19 pm thumb
Rating: Everyone
Viewed 384 times
Recorded at: September 27, 2014
Date Posted: December 27, 2014

Часто, когда я работаю с «унаследованным» кодом или собеседую новых разработчиков в компанию, мне приходится отмечать недостаточный интерес коллег к самым базовым паттернам ООП, из-за чего их код становится трудным в поддержке и плохо читаемым.

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

В свободное время я поддерживаю gem для аутентификации Sorcery — легкий аналог Devise и подобных gemов. В работе мы максимально используем паттерны, улучшающие читаемость и поддерживаемость кода — Service Object, Value Object, Query Object и другие.

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

+++

Often, when I work with "legacy" code or sobeseduyu new developers in the company, I have to mark the lack of interest of colleagues to the most basic patterns of the PLO, which is why their code becomes difficult to support and difficult to read.

Despite the abundance of literature on the subject, as well as a great interest in the topic of competent design Rails applications in recent years, most programmers on commercial projects of interest to the beautiful code is academic. I think that the problem is not only in motivating developers, but also in the design standards to which they are accustomed to using the most popular libraries with Rails.

In my spare time, I support the gem for authentication Sorcery - lightweight analogue Devise and similar gemov. In this paper, we use the maximum patterns that improve the readability and maintainability of code - Service Object, Value Object, Query Object and others.

I'll tell you why you should use Sorcery for authentication, it does not get bogged down in the ActiveRecord-callback, and how you can benefit from an efficient architecture of your application, starting with the basic functionality of your application - authentication.

Screenshot 2014 12 31 at 10.52.21 am thumb
Rating: Everyone
Viewed 130 times
Recorded at: September 27, 2014
Date Posted: December 31, 2014

Космос. Кажется, он тянется бесконечно. Но когда добираешься до края, горилла начинает швырять в тебя бомбами.
И так, мой друг, я приглашаю тебя в мой совершенный абстрактный космический зоопарк и, чтобы доказать это, я покажу тебя сферического коня, а также (никакого мошенничества!) функциональное программирование с помощью бананов, линз и колючей проволоки.
Я верю, что лямбда -- неотъемлемая часть символьных вычислений, которые рассматривают и функции, и переменные как объекты первого класса, поэтому доклад бегло пробежится по основам лямбда исчисления, специально остановится на безымянный версии, которая наиболее применима для машинной реализации, а затем продолжит описывать различные абстрактные машины, которые так сильно повлияли на современные парадигмы программирования.
Пожалуйста, заходите. Идите вперёд. Закрыть ворота. Дорогие гости, я с огромным удовольствием приветствую вас в моём скромном зоопарке.
Скоро мы абстрагируется от языков программирования, будь он императивный или функциональный, от архитектур и построим свой собственный лунный модуль и абстрактную лямбда машину.

Screenshot 2014 12 31 at 11.00.05 am thumb
Rating: Everyone
Viewed 206 times
Recorded at: September 27, 2014
Date Posted: December 31, 2014

Долгое время Ruby критиковали за историю с concurrency, но все изменилось, Ruby изменился.
В своем выступлении я продемонстрирую несколько разных вариантов параллельности, включая классический mutex/condition variable combo, Node style evented IO, Clojure-style compare-and-set, и Erlang-style actors. Я покажу, как их можно использовать в Ruby и как Ruby дает более широкий выбор по сравнению с другими платформами, когда речь идет о параллелизме. Я познакомлю вас с Celluloid - фреймворком для создания многопоточных приложений на Ruby, показав, как это работает в действительности и как он сочетает лучшие варианты в одном цельном решении.

Screenshot 2014 12 31 at 11.02.05 am thumb
Rating: Everyone
Viewed 118 times
Recorded at: September 27, 2014
Date Posted: December 31, 2014

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

Screenshot 2014 12 31 at 11.03.09 am thumb
Rating: Everyone
Viewed 297 times
Recorded at: September 27, 2014
Date Posted: December 31, 2014

Аарон расскажет про будущее Rack, про то, как устроено тестирование в Rails и как мы можем начать запускать тесты параллельно. А также поговорим про внутреннюю логику View.

Screenshot 2014 12 31 at 11.22.46 am thumb
Rating: Everyone
Viewed 160 times
Recorded at: September 27, 2014
Date Posted: December 31, 2014

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

Для масштабирования вычислений на несколько машин есть множество Big Data фреймворков. Без опыта и должного погружения в тему сложно понять, какие задачи они решают, и чем отличаются в работе — чтобы сделать правильный выбор. Чтобы понять, в каком направлении движутся эти фреймворки и что они дают, я расскажу:

— зачем необходима локальность данных;
— почему эти фреймворки построены на dataflow;
— в чем заключается лямбда архитектура и как ее упростить;
— как мы в Oh My Stats эспериментировали с реактивной абстракцией для вычислений.

Среди конкретных фреймворков будут упомянуты ставшие уже классическими Hadoop и Storm (и как их использовать из Ruby), а также в чем преимущества модных Summingbird, Spark и парочки других альтернатив.

И, наконец, я расскажу, почему для Oh My Stats мы решили написать свой фреймворк для пересчета на чистом Ruby (Flow.rb), какие цели мы при этом преследовали, и что у нас получилось.

Screenshot 2014 12 31 at 11.22.07 am thumb
Rating: Everyone
Viewed 138 times
Recorded at: September 27, 2014
Date Posted: December 31, 2014

Где же все-таки хранить бизнес логику в RoR приложении? Коммьюнити не первый год муслит вопрос, и с каждым разом "ответов" становится все больше. Concerns, DCI, Service Objects, Form Objects, и прочие изобретения - что выбрать? Или достаточно просто следовать "Rails MVC" и хранить бизнес код в моделях? А может в контроллерах?
Обсудим на конференции.
Для старта, обзор различных подходов в этом непростом вопросе дадут Александр Даниленко и Radan Skoric, тимлид в Toptal.com.

Screenshot 2014 12 31 at 11.27.02 am thumb
Rating: Everyone
Viewed 108 times
Recorded at: September 27, 2014
Date Posted: December 31, 2014

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

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

Рассмотрим:
* процесс принятия нового кода;
* управление задачами;
* управление багами;
* взаимодействие с переводчиками;
* защита качества кода и управление техническим долгом;
* превентивное обеспечение безопасности;
* автоматизированное тестирование;
* защита стиля кода;
* управлениее стейджами и обеспечение простого тестирования фич перед релизом.

Screenshot 2014 12 31 at 11.39.25 am thumb
Rating: Everyone
Viewed 96 times
Recorded at: September 27, 2014
Date Posted: December 31, 2014

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

Screenshot 2014 12 31 at 11.37.54 am thumb
Rating: Everyone
Viewed 102 times
Recorded at: September 27, 2014
Date Posted: December 31, 2014

https://vexor.io/

Screenshot 2014 12 31 at 11.35.59 am thumb
Rating: Everyone
Viewed 114 times
Recorded at: September 27, 2014
Date Posted: December 31, 2014

В докладе Божидар расскажет о том:
* Что такое стиль
* Плохой стиль против плохого
* Как основные концепции стиля применяются в языках программирования вообще
* Обзор доступных ресурсов, посвященных стилю кода на Ruby
* Взгляд на сообщество Ruby Style Guide: влияние, эволюция и знакомство с некоторыми его правилами
* Инструменты, которые помогают придерживаться единого стиля в кодовой базе на (на примере RuboCop)

Божидар любит компьютеры в целом и программирование в частности. Его увлекают практически все аспекты компьютерных наук. Всем известна его фанатичная преданность Emacs. Божидар проводит много времени на GitHub, участвуя в различных Ruby, Clojure и Emacs Lisp проектах.В Ruby сообществе он, вероятно, лучше всего известен как редактор создаваемых сообществом style guides по Ruby и Rails и как автор RuboCop code analyzer.Верите или нет, у Божидара есть интересы и помимо компьютеров! Однако мы не будем утомлять вас рассказом о них.

Screenshot 2014 12 31 at 11.41.30 am thumb
Rating: Everyone
Viewed 79 times
Recorded at: September 27, 2014
Date Posted: December 31, 2014