On




Ruby On Rails
Для самых маленьких
Ruby and Ruby On Rails
 Кратко о Ruby;

 Кратко о Ruby On Rails;

 Почему Ruby и почему Ruby On Rails?

 Ответ на волнующий вопрос: откуда столько шума, и
  почему это круто?
Краткая история Ruby
 Разработан японцем Юкихиро Мацумото;

 Вышел в свет в 1995 году;

 Что хотел создатель:
   Более мощный язык, чем Perl;
   Более ООП язык, чем Python.

 Об итогах далее.



                              Матц следит за вами…
The Ruby Way
 Просто, но не слишком просто;

 Принцип наименьшего удивления;

 Вторичность скорости работы программы;

 Динамичность;

 Простые строгие правила, выполнение которых не
  доходит до педантизма;

 Потребность создавать полезные и красивые
  программы, как причина программирования.
Почему Ruby – это круто?
 Высокая скорость разработки;

 Практикуется TDD и BDD;

 Практикуется применение паттернов и следования
  принципу DRY;

 Мощные средства для написания DSL (Domain Specific
  Language);

 Большое сообщество движимое чувством прекрасного,
  любовью к красивому коду и хорошему софту.
Поговорим о минусах…
 Высокий порог вхождения;

 Много магии (которая становится вполне понятной при
  познании Дзена Ruby);

 В России Ruby только набирает популярность (текущая
  популярность языка только самое начало – дальше
  больше);

 Низкая скорость работы;

 Высокое потребление памяти.
Развитие языка
 В феврале запланирован выход версии 2.0;

 Канонической реализацией является MRI Ruby;

 Существующие реализации:
  Rubynius (LLVM-интерпретатор написанный на Ruby;
   родственный проект PyPy);
  Elixir (диалект Ruby для Erlang VM);
  JRuby (Java powered Ruby);
  IronRuby (.NET powered Ruby);
  MagLev;
  MacRuby.
Краткая история 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.

                       “Я знаю как сделать ХОРОШО!”
The Rails Way
 Don’t Repeat Yourself;

 Convention over Configuration;

 Предположение о том, что есть лучший способ что-то
  сделать (в некоторых случаях препятствует
  альтернативам);

 Требует понимания The Rails Way, и карает тех, кто
  тащит старые привычки в Ruby On Rails;

 Используется ряд допущений о том, что нужно каждому
  разработчику для создания нового проекта.
Ruby On Rails и друзья
 Ruby On Rails не один:
   Sinatra;
   Padrino;
   Espresso.

 Повлиял на:
   Pylons (Python);
   Play! Framework (Java);
   Grails (Groovy/Java);
   Yii (PHP).
From WSGI to Rack
 Python Web Server Gateway Protocol (WSGI);

 Ruby Rack;
Request/Response model
 Rails следуют лишь одной модели;

 Последовательность обработки запроса:
  Браузер;
  Прокси-сервер (например, nginx);
  Веб-вервер (например, Unicorn);
  Rack;
  Middlewares;
  Router;
  Controller;
  Action.
Архитектура Rails
 Rails – клей + компоненты;

 Railtie;

 ActiveSupport;

 ActiveRecord;

 ActiveModel;

 ActionMailer;

 ActionPack:
   ActionController;
   ActionDispatch;
   ActionView.
Railtie
 Управление загрузкой Rails приложения;

 Управление интерфейсом командной строки;

 Предоставление интерфейса генераторов.
ActiveSupport
 Расширение языка;

 Расширение стандартной библиотеки;

 Дополнительные утилиты.
ActiveRecord
 Прослойка между приложением и базой данных;

 Запросы строятся с помощью AREL движка;

 Независимость от базы данных;

 Альтернативы:
  DataMapper;
  Sequel;
  Mongoid;
  MongoMapper;
  CouchPotato и др.
ActiveModel
 Прослойка между ActionPack и данными;

 Аттрибуты;

 Обратные вызовы;

 Слежение за изменениями;

 Управление ошибками;

 Интроспекция;

 Observer;

 Сериализация;

 Валидации;

 Кастомные валидации.
ActionController
 Прослойка между представлением и данными;

 Обратные вызовы.
ActionView
 Поиск шаблонов;

 Взаимодействие с движками шаблонов;

 Предоставление хелперов.
ActionDispatch
 Парсинг информации о запросе;

 Управление HTTP кэшированием;

 Cookies и сессии;

 Роутинг внутри приложения.
Также в комплекте
 Assets Pipelines;

 Background Jobs (in Rails 4);

 Консольные утилиты;

 Генераторы.
Если чего-то не хватает?
 Огромное количество плагинов;

 Возможность написать свое решение один раз, и
  использовать его везде;

 Практически для любой задачи уже есть готовое
  решение;

 Если готовое решение не подходит – можно изменить
  или написать свое (open source в действии).
Есть вопросы?

Rails for dummies

  • 1.
    On Ruby On Rails Длясамых маленьких
  • 2.
    Ruby and RubyOn 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.
    Краткая история RubyOn 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 toRack  Python Web Server Gateway Protocol (WSGI);  Ruby Rack;
  • 12.
    Request/Response model  Railsследуют лишь одной модели;  Последовательность обработки запроса:  Браузер;  Прокси-сервер (например, nginx);  Веб-вервер (например, Unicorn);  Rack;  Middlewares;  Router;  Controller;  Action.
  • 13.
    Архитектура Rails  Rails– клей + компоненты;  Railtie;  ActiveSupport;  ActiveRecord;  ActiveModel;  ActionMailer;  ActionPack:  ActionController;  ActionDispatch;  ActionView.
  • 14.
    Railtie  Управление загрузкойRails приложения;  Управление интерфейсом командной строки;  Предоставление интерфейса генераторов.
  • 15.
    ActiveSupport  Расширение языка; Расширение стандартной библиотеки;  Дополнительные утилиты.
  • 16.
    ActiveRecord  Прослойка междуприложением и базой данных;  Запросы строятся с помощью AREL движка;  Независимость от базы данных;  Альтернативы:  DataMapper;  Sequel;  Mongoid;  MongoMapper;  CouchPotato и др.
  • 17.
    ActiveModel  Прослойка междуActionPack и данными;  Аттрибуты;  Обратные вызовы;  Слежение за изменениями;  Управление ошибками;  Интроспекция;  Observer;  Сериализация;  Валидации;  Кастомные валидации.
  • 18.
    ActionController  Прослойка междупредставлением и данными;  Обратные вызовы.
  • 19.
    ActionView  Поиск шаблонов; Взаимодействие с движками шаблонов;  Предоставление хелперов.
  • 20.
    ActionDispatch  Парсинг информациио запросе;  Управление HTTP кэшированием;  Cookies и сессии;  Роутинг внутри приложения.
  • 21.
    Также в комплекте Assets Pipelines;  Background Jobs (in Rails 4);  Консольные утилиты;  Генераторы.
  • 22.
    Если чего-то нехватает?  Огромное количество плагинов;  Возможность написать свое решение один раз, и использовать его везде;  Практически для любой задачи уже есть готовое решение;  Если готовое решение не подходит – можно изменить или написать свое (open source в действии).
  • 23.