Development.Backend

Цепелев Дмитрий

Злые марсиане, Владимир
Backend Engineer
Тема доклада:
Объектная модель Ruby, метапрограммирование и создание DSL

Тезисы доклада:
Метапрограммирование — один из способов создавать программы, которые создают другие программы. В отличие от кодогенерации, метапрограммирование “пишет” код прямо в рантайме, и в Ruby используется именно такой подход. Первым делом мы разберемся с тем, как виртуальная машина Ruby представляет наши классы и объекты, а затем — как работает наследование и модули. После этого — перейдем к способам динамического объявления методов, реализации замыканий и биндингов (биндинг — это как замыкание, но без функции). Наконец, мы применим полученные знания для создание своих собственных DSL (domain specific language): напишем свой собственный геттер, генератор модулей, и, наконец, роутер и базовую реализацию паттерна ActiveRecord. Доклад будет интересен как практикующим Ruby–программистам (нас мало, я знаю!), так и всем остальным — возможно после доклада у них тоже возникнет желание разобраться с тем, как работает их любимый язык. Для того, чтобы понять эту тему не потребуется знание синтаксиса Ruby — всё что нужно мы узнаем прямо в процессе доклада.

О себе:
Ruby–разработчик с десятилетним опытом. Активный участник open–source сообщества — коммитит в Rails, graphql-ruby и поддерживет несколько своих своих библиотек. Регулярно выступает с докладами и пишет статьи: преимущественно про Ruby, базы данных и GraphQL.