2. Ruby and Ruby On Rails
Кратко о Ruby;
Кратко о Ruby On Rails;
Почему Ruby и почему Ruby On Rails?
Ответ на волнующий вопрос: откуда столько шума, и
почему это круто?
3. Краткая история Ruby
Разработан японцем Юкихиро Мацумото;
Вышел в свет в 1995 году;
Что хотел создатель:
Более мощный язык, чем Perl;
Более ООП язык, чем Python.
Об итогах далее.
Матц следит за вами…
4. The Ruby Way
Просто, но не слишком просто;
Принцип наименьшего удивления;
Вторичность скорости работы программы;
Динамичность;
Простые строгие правила, выполнение которых не
доходит до педантизма;
Потребность создавать полезные и красивые
программы, как причина программирования.
5. Почему Ruby – это круто?
Высокая скорость разработки;
Практикуется TDD и BDD;
Практикуется применение паттернов и следования
принципу DRY;
Мощные средства для написания DSL (Domain Specific
Language);
Большое сообщество движимое чувством прекрасного,
любовью к красивому коду и хорошему софту.
6. Поговорим о минусах…
Высокий порог вхождения;
Много магии (которая становится вполне понятной при
познании Дзена Ruby);
В России Ruby только набирает популярность (текущая
популярность языка только самое начало – дальше
больше);
Низкая скорость работы;
Высокое потребление памяти.
7. Развитие языка
В феврале запланирован выход версии 2.0;
Канонической реализацией является MRI Ruby;
Существующие реализации:
Rubynius (LLVM-интерпретатор написанный на Ruby;
родственный проект PyPy);
Elixir (диалект Ruby для Erlang VM);
JRuby (Java powered Ruby);
IronRuby (.NET powered Ruby);
MagLev;
MacRuby.
8. Краткая история Ruby On Rails
Создан Давидом Хейнемейером Ханссоном из 37signals
(извлечен из кода Basecamp);
23 декабря 2008 года – объединение с Merb;
25 мая 2010 – выход версии 2.3.8;
29 августа 2010 года – выход версии 3.0;
31 августа 2011 года – выход версии 3.1;
20 января 2012 года – выход версии 3.2.
“Я знаю как сделать ХОРОШО!”
9. The Rails Way
Don’t Repeat Yourself;
Convention over Configuration;
Предположение о том, что есть лучший способ что-то
сделать (в некоторых случаях препятствует
альтернативам);
Требует понимания The Rails Way, и карает тех, кто
тащит старые привычки в Ruby On Rails;
Используется ряд допущений о том, что нужно каждому
разработчику для создания нового проекта.
10. Ruby On Rails и друзья
Ruby On Rails не один:
Sinatra;
Padrino;
Espresso.
Повлиял на:
Pylons (Python);
Play! Framework (Java);
Grails (Groovy/Java);
Yii (PHP).
11. From WSGI to Rack
Python Web Server Gateway Protocol (WSGI);
Ruby Rack;
12. Request/Response model
Rails следуют лишь одной модели;
Последовательность обработки запроса:
Браузер;
Прокси-сервер (например, nginx);
Веб-вервер (например, Unicorn);
Rack;
Middlewares;
Router;
Controller;
Action.
16. ActiveRecord
Прослойка между приложением и базой данных;
Запросы строятся с помощью AREL движка;
Независимость от базы данных;
Альтернативы:
DataMapper;
Sequel;
Mongoid;
MongoMapper;
CouchPotato и др.
17. ActiveModel
Прослойка между ActionPack и данными;
Аттрибуты;
Обратные вызовы;
Слежение за изменениями;
Управление ошибками;
Интроспекция;
Observer;
Сериализация;
Валидации;
Кастомные валидации.
21. Также в комплекте
Assets Pipelines;
Background Jobs (in Rails 4);
Консольные утилиты;
Генераторы.
22. Если чего-то не хватает?
Огромное количество плагинов;
Возможность написать свое решение один раз, и
использовать его везде;
Практически для любой задачи уже есть готовое
решение;
Если готовое решение не подходит – можно изменить
или написать свое (open source в действии).