понедельник, 31 мая 2010 г.

Ruby On Rails: Что это?

Итак, начнем знакомиться с Ruby On Rails.
Во-первых, открываем getting started и читаем:
Что такое Rails?
Rails - это фреймворк для разработки веб-приложений, написанный на языке Ruby. Он предназначен для облегчения программирования за счет допущений относительно того, что нужно каждому разработчику. Это приводит к тому, что программировать требуется намного меньше по сравнению с другими языками и фреймворками.
Rails делает предположение, что существует некий "лучший" путь разработки, и спроектирован таким образом, чтобы следовать этому пути. Как обещают разработчики, если мы выучим "путь Rails", то невероятно увеличим свою производительность. Если же попытаться применять какие-то другие пути к Rails, то ничего хорошего из этого не выйдет.
Философия Rails включает в себя несколько главных приципов:
1) DRY – “Don’t Repeat Yourself” - "Не повторяйтесь" - подразумевает, что писать один и тот же код снова и снова - плохо.
2) Convention Over Configuration - Соглашения превыше конфигурации - Rails делает предположения о том, что вы хотите сделать, и как, вместо того, чтобы заставлять вас править бесконечные файлы конфигурации.
3) REST - лучший подход для разработки веб-приложений. Организация приложения на стандартных возможностях http - лучший способ сделать дело.

MVC архитектура
В основе Rails лежит архитектура MVC - Model, View, Controller - Модель, представление, контроллер.
Плюсы MVC включают в себя следующее:
1) Отделение бизнес-логики от интерфейса пользователя
2) Поддержка принципа DRY
3) Видно, где какой код за что отвечает, что облегчает поддержку приложений на rails.
Модели
Модель представляет собой данные приложения и правила для этих данных. В случае Rails, модель в первую очередь используется для настройки правил взаимодействия с таблицами баз данных. В большинстве случаев одна модель соответствует одной таблице. Большая часть бизнес-логики будет находиться в моделях.
Представления
Представления - это пользовательский интерфейс приложения. В Рельсах представления почти всегда - это HTML файлы с внедренным ruby-кодом, который выполняет необходимые действия по работе с информацией. Они выполняют всю работу по предоставлению данных браузеру или другим программам, выполняющим запросы к вашему приложению.
Контроллеры
Контроллеры - своеобразная прослойка между моделями и представлениями. В Rails они отвечают за обработку входящих запросов от браузера, извлечение данных из моделей и транспонтировку этих данных представлениям.
Компоненты Rails
Rails - это связка из многих различных компонентов.
Рассмотрим их:
1) Action Pack
Action Pack содержит в себе Action Controller, Action View и Action Dispatch. Это VC часть от MVC архитектуры.
a) Action Controller - отвечает за контроллеры в приложении rails. Он обрабатывает входящие запросы, извлекает параметры из них и передает их соответствующему действию. Он так же отвечает за управление сессиями, генерацию шаблонов и управление переадресацией.
b) Action View - отвечает за представления. По умолчанию он может генерировать как HTML, так и XML вывод данных. Также он имеет встроенную поддержку AJAX.
c) Action Dispatch - управляет направлением запросов, заруливая их в ваше приложение или к любым другим Rack-приложениям.
2) Action Mailer - фреймворк для создаение e-mail сервисов. С его помощью можно получать и обрабатывать входящие письма, а так же посылать письма, созданные на основе гибких шаблонов.
3) Active Model - предоставляет интерфейс для взамиодействия между сервисами Action Pack и Active Record. Он позволяет Rails использовать другие фреймворки вместо Active Record, если это требуется.
4) Active Record - это основа моделей в Rails. Он предоставляет БД, настраиваемые возможности поиска, связь моделей друг с другом и др.
5) Active Resource - предоставляет фреймоворк для управления связями между объектами бизнеса и REST-веб-сервисами. Он дает возможность связать веб-ресурсы с локальными объектами, используя семантику CRUD.
6) Active Support - большая коллекция полезных классов и стандартных библиотек Ruby, используемых в Rails как ядром, так и приложениями пользоваетеля.
7) Railties - основа Rails, которая создает новые приложения и связывает различные фреймоворки и плагины внутри приложения.

Продолжим знакомиться с Rails в следующих постах:)

Комментариев нет: