Митап прошёл, а значит пора поделиться его докладами! В этот раз спикеры из Toptal, Distribusion Gmbh, «Баланс Платформы» и «Нетологии» делились секретами аппликативного программирования, учили создавать собственные паттерны, рассказывали об ОСР и собственном опыте с Arel. Все доклады уже доступны на нашем YouTube-канале.
PassiveRecord. Что не может ActiveRecord, зато может Arel
Владислав Круглов, senior back-end developer «Нетология»
Active Record — самый популярный вариант взаимодействия с БД, но подходит только для простейших запросов. Рано или поздно любой рубист упирается в его ограниченный функционал и обращается к всемогущему Arel. В докладе я расскажу, как мы используем «Arel»: SQL Builder из ActiveRecord, дающий доступ к низкоуровневому синтаксису, и позволяющий использовать базу данных на максимум.
Принцип «Open Closed» в Ruby
Сергей Удалов, руководитель группы ruby-разработчиков «Баланс Платформа»
Идея OCP очень заманчива: писать такие системы, поведение которых можно изменять без изменения кода. Но достичь этого на практике не просто. В докладе разберемся, что же такое ОСР, и как применить этот принцип в Ruby-библиотеках.
Базовые принципы
Федор Кошель, Lead Backend Engineer Distribusion Gmbh
В основном разработчики учат паттерны, чтобы писать более поддерживаемый код. Большинство шаблонов основаны на принципах. Если понять принципы, то паттерны можно придумывать самому или реализовывать уже существующие. К тому же принципы примерно одинаково работают в разных языках и пользоваться ими можно не только в Ruby. Знание базовых принципов позволяет писать хороший код в любых ситуациях и на любом языке.
Аппликативное программирование в Ruby: секретные архивы тайного общества адептов raleway—программирования
Дмитрий Цепелев, Senior Backend Engineer Toptal
Все знают, что бизнес-логику в Rails лучше держать подальше от моделей и контроллеров: паттерн «service object» и все его многочисленные родственники давно и плотно вошли в обиход. Результатом работы такого примитива является некий результат: либо успешный (содержащий некие данные внутри), либо не очень (обычно там одна или несколько ошибок). В докладе мы рассмотрим не только монады, но и другой вид абстракций — аппликативные функторы, а также разберемся, как превратить одно в другое.