Стартуем с Rails. |
- Statistics
- Participants
- Translate into Russian
- Translation result
- 93% translated in draft. Almost done, let's finish it!
Руководство основано на версии Rails 2.3. В предыдущих версиях примеры кода могут не работать.
Допущения
Руководство создано для начинающих разрабатывать на Rails с нуля, без опыта работы с этим фреймфорком. Однако, для большей пользы вам нужно установить некоторое программное обеспечение:
* Интерпретатор языка Ruby
* Систему управления пакетами RubyGems
* Систему управления базами данных SQLite (предпочтительно), MySQL или PostgreSQL.
Перед началом работы с Rails вам рекомендуется ознакомится с языком Ruby. Вам намного будет легче понять, как работает Rails-приложение, если вы понимаете базовый синтаксис Ruby. Вы не раскроете весь магический потенциал Rails, если не будете знать язык, на котором написан этот фреймворк.
Вот несколько свободных ресурсов для изучения Ruby:
* Mr. Neighborly’s Humble Little Ruby Book
* Programming Ruby
* Why’s (Poignant) Guide to Ruby
2. Чем является Rails?
Rails это фреймворк для веб-разработки, написанный на языке Ruby. Он разработан, чтобы сделать веб-программирование проще, сделав несколько предположений о том, что нужно каждому разработчику для начала работы. Это позволяет писать меньше кода, выполняя больше, чем многие другие языки и фреймворки. Тот, кто давно работает с Rails также сообщают, что с ним работа идет веселее :)
Rails "упрямый" фреймворк. Им предполагается, что лучший способ делать вещи, в нем поощеряется лучший способ, в некоторых случаях отсутствием альтернативы. Если вы изучали "Rails Way", то вы, вероятно, обнаружили значительное увеличение производительности. Вы получите меньше счастья от разработки, если будете использовать старые привычки от других языков в разработке на Rails и вы пытаетесь использовать привычные модели разработки
Философия Rails состоит из нескольких принципов:
* DRY – “Don’t Repeat Yourself” (не повторяй себя) -- соглашение о том, что повторение одного и того же кода много раз в программе -- плохая практика.
Соглашения о конфигурации - для разработки типичного веб-приложения вам не нужно создавать сотни конфигурационных файлов.
REST - лучший образец для веб-приложений, организующий приложение как совокупность ресурсов и стандартных методов доступа к ним. http://ru.wikipedia.org/wiki/REST
2.1 Архитектура MVC
Rails-приложение организовано как сочетание Модели, Вида и Контроллера. Преимущества этой архитектуры:
Разделение бизнес-логики и пользовательского интерфейса
Легкость следования принципу DRY
Ясное понимание назначения кода, что облегчает поддержку
2.1.1 Модели
Модель в приложении отвечает за данные и правила работы с данными. В Rails Модели главным образом используются для взаимодействия с базой данных. В большинстве случаев, одна таблица базы данных связывается с одной моделью приложения. Основной объем бизнес-логики приложения сконцентрирован в Моделях.
2.1.2 Виды
Виды представляют интерфейс пользователя. В Rails виды это главным образом HTML-файлы с включением кода на ruby для отображения данных. Виды выполняют работу по предоставлению данных для веб-браузера или для любого другого, отправившего запрос к приложению.
2.1.3 Контроллеры
Контроллеры -- это "клей", связывающий Виды и Модели. В Rails конторллеры отвечают за обработку входящего запроса, отправляют запрос к Моделям за данными и предоставляют эти данные Видам для отображения.
2.2 Компоненты Rails
Rails включает в себя полный набор компонетнов для создания веб-приложения:
* Action Controller
* Action View
* Active Record
* Action Mailer
* Active Resource
* Railties
* Active Support
2.2.1 Action Controller
Action Controller это менеджер котроллеров в Rails-приложении. Action Controller фреймворк обрабатывает входящие запросы, извлекает параметры и отравляет их назначенные экшены (action). Action Controller включает в себя следущие сервисы: менеджер сессий, обработчик шаблонов и переадресаций.
2.2.2 Action View
Action View это менеджер Видов в Rails-приложении. По умолчанию, он создает html и xml выводы. Action View управляет отрисовкой вложенных и частичных шаблонов и включает в себя поддержку AJAX.
2.2.3 Active Record
Active Record -- основа для Моделей в Rails-приложении. Обеспечивает независимость от типа базы данных, базовую CRUD-функциональность и возможность взаимосвязь моделей друг с другом и другими сервисами.
2.2.4 Action Mailer
Action Mailer это фреймфорк для создания, отправки и получения почты. Он поддерживает гибкую систему шаблонов для получения и отправки почты.
2.2.5 Active Resource
Active Resource предоставляет каркас для управления соединениями между объектами и RESTful веб-сервисами путем CRUD-семантики.
2.2.6 Railties
Railties это ядро Rails, которое создает новое Rails-приложение и связывает разные каркасы вместе.
2.2.7 Active Support
Active Support это обширная коллекция полезных классов и расширений стандартной библиотеки Ruby которые используются Rails приложением
2.3 REST
Фундамент RESTful-архитектуры был заложен докторской диссертацией Roy Fielding, "Архитектурный стиль и Дизайн сетевого программного обеспечения". К счастью, вы можете понять работу REST в Rails без прочтения этой работы. REST, акроним "передача состояния представления", сводится к двум главным принципам:
* Использование идентификаторов ресурса (можете думать о ресурсе как о URL)
Передача представления состояния ресурса между компонентами системы.
Наример, Rails-приложение получает запрос:
DELETE /photos/17
который будет им интерпретирован как ресурс photo с ID номер 17 который нужно удалить. REST это естественная архитектура веб-приложения, и Rails делает эту архитектуру еще более ясной и прозрачной.
Более детально REST-архитектура изложена в следующих работах:
* A Brief Introduction to REST by Stefan Tilkov
* An Introduction to REST (video tutorial) by Joe Gregorio
* Representational State Transfer article in Wikipedia
http://ru.wikipedia.org/wiki/REST
* How to GET a Cup of Coffee by Jim Webber, Savas Parastatidis & Ian Robinson
3 Создание нового проекта Rails
Следуя данному руководству, Вы создадите блог, (очень) простой блог. Прежде чем начать написание приложения, необходимо убедиться, что у Вас установлен Rails.
3.1 Установка Rails
В большинстве случаев, простейший способ установить Rails, это воспользоваться RubyGems:
$ gem install rails
Альтернативная установка вам может потребоваться в следующих случаях:
* Если вы работаете в Windows (то вам не повезло :), - прим. переводчика), простой способ установить Rails -- инсталлировать Instant Rails (http://ru.wikipedia.org/wiki/Instant_Rails). Внимание: версия Rails в Instant_Rails сильно отстает от актуальной. И вообще, разрабатывать на Rails в Windows принесет вам меньше удовольствия, чем разработка в других системах. Мы рекомендуем вам, если это возможно, установить Linux в виртуальную машину для разработки.
* Если вам необходима самая свежая версия Rails, вы можете взять ее на github. Новичкам не рекомендуется.
3.2 Создание блога
Откройте терминал, перейдите в директорию, в которой Вы имеете права на создание файлов, и запустите:
$ rails blog
Данная команда создаст приложение Rails, которое использует для хранения данных базу SQLite. Если Вы предпочитаете использовать MySQL, тогда вместо предыдущей команды используйте следующую:
$ rails blog -d mysql
Если же Вы хотите использовать базу данных PostgreSQL, выполните эту команду:
$ rails blog -d postgresql
Вы можете увидеть всю работу по созданию Rails-приложения, запустив rails с ключом -h:
rails -h.
После создания приложения "блог", перейдите в пупку это го приложения:
$ cd blog
Изучите содержимое директории. В руководстве мы в основном будем работать в папке "app", ниже небольшое обозрение создаваемых rails папок по умолчанию:
(тут должна быть таблица)
Файл/Назначение
README
Краткое руководство для приложения. Используйте его для описания инсталляции, работы вашего приложения.
Rakefile
Командный файл для запуска в терминале.
app/
Содержит контроллеры, модели и виды приложения. В руководстве мы сфокусируемся на этой папке.
config/
конфигурационные файлы приложения
db/
Содержит информацию о схеме и миграциях базы данных. Вы узнаете о миграциях очень скоро.
doc/
Разнообразная документация приложения.
lib/
Внешние модули. В данном руководстве не рассматриваются.
log/
Журнал работы приложения.
public/
Единственная папка, доступная извне "как есть". Место хранения картинок, скриптов, css-файлов и другой статики.
script/
Скрипты для выполнения текущих задач -- тестирование производительности, установки дополнений, запуска консоли приложения или строенного веб-сервера.
test/
Фикстуры (шаблоны данных для тестов), модульные и другие тесты. Подробнее в главе "Тестирование Rails-приложения".
tmp/
Временный файлы
vendor/ Место для кода сторонних разработчиков. В типичных приложениях Rails, сюда включают Ruby Gems, исходный код Rails (если вы устанавливаете его в ваш проект) и плагины содержащие расширения функциональности пакетов.
Конфигурирование Базы данных
Каждое Rails-приложение взаимодействует с базой данных. Файл настройки этого взаимодействия config/database.yml. Открыв этот файл в только что созданном Rails-приложении вы увидите конфигурацию для базы данных SQLite, которая используется по умолчанию. Файл содержит настройки для трех различных окружений Rails-приложения:
* разработка. Используется в процессе создания приложения.
* Тестирование -- для запуска автоматических тестов.
© Mike Gunderloy
Original (English): Getting Started with Rails
Translation: © alexbaumgertner, Виталий, LinchK, alexvrud, razor-empire, asplogika, yukiki .
License: Creative Commons Attribution-Share Alike 3.0
