Ruby outside Rails

Post on 22-Jun-2015

58 views 5 download

Tags:

description

Ruby one-liners & DSL

Transcript of Ruby outside Rails

Ruby outside Rails

Victor Petrenko Software Engineer & CTO at Songsterr.com

vpetrenko@gmail.com

План

• Автоматизируем свою работу (one-liners)

• Domain Specific Languages. Зачем и как?

• Capistrano. Деплоймент не только Ruby on Rails

southfest.ru

Задача2,Wonderwall,Intermediate!

4,Tears In Heaven,Beginner!

5,Paint It Black,Intermediate!

8,Iron Man,Advanced!

10,Johnny B. Goode,Intermediate!

12,Can't Stop,Intermediate!

14,Come As You Are,Intermediate!

19,Enter Sandman,Intermediate

Demo

Ссылки

• http://benoithamelin.tumblr.com/post/10945200630/text-processing-1liners-ruby-vs-awk

• http://benoithamelin.tumblr.com/ruby1line/

Domain Specific Languages

• DSL — специализированный язык для определенной предметной области

• Примеры DSL: Rake, Capistrano, Rails

• Создание DSL: listo

listo• Большой проект на С++ (30+ подпроектов, 50+ разработчиков)

• Единообразие настроек компилятора

• Кросс-платформенная компиляция (Windows, Unix)

• Интроспекция проекта (проверки, тесты)

class World

class Maker

Success Story• Решал задачи, прожил ~2 года

• Тонкое управление организацией проекта

• Генерация MS Visual Studio projects/solutions

• Генерация qmake файлов (для сборки в unix)

• Автоматическое включение исходников в проект

listo.success?• Мало фич

• Ошибки проектирования/реализации

• Запуск на windows без установки (ruby <= 1.8.6)

• Конкуренция: cmake, qmake

• В итоге был выпилен и заменен на cmake

• Сообщения об ошибках

Ошибки

• Плохая задача для тренировки

• Слишком гибкая семантика

• Проектирование языка listo и интерпретатора одновременно

Спасибо за внимание!

Вопросы?

Виктор Петренко vpetrenko@gmail.com