Глава 1 От нуля к развертыванию
Добро пожаловать в Ruby on Rails Tutorial: Изучаем Rails на примерах Цель этой книги состоит в том, чтобы стать лучшим ответом на вопрос: «Если я хочу изучить веб-разработку на Ruby on Rails, с чего я должен начать» К тому времени, когда Вы завершите Ruby on Rails Tutorial, вы будете иметь все знания необходимые для разработки и разворачивания собственных веб-приложений. Вы также будете готовы извлечь выгоду из многих более продвинутых книг, блогов и видеороликов, которые являются частью процветающей образовательной экосистемы Rails. Наконец, так как Учебное руководство Ruby on Rails использует Rails 3.0, информация, которую Вы получаете здесь, будет полностью актуализирована с самой последней и самой великой версией Rails.1
Ruby on Rails Tutorial следует, по существу, тому же подходу, что и моя предыдущая книга о Rails;2 обучение веб-разработке на Rails путём создания реального приложения с нуля. Как отмечает Derek Sivers (Дерек Сиверс) в предисловии, эта книга структурирована линейно, поэтому ее следует читать от начала до конца. Если вы привыкли прыгать в технических книгах, применение этого линейного подхода может потребовать от Вас некоторой корректировки, но я предлагаю попробовать. Вы можете думать о Ruby on Rails Tutorial как о видео-игре, где Вы – главный герой, получающий новый уровень, как Rails разработчик, в каждой главе. (упражнения – это минибоссы)
В этой первой главе мы начнем изучение Ruby on Rails, с установки всего необходимого програмного обеспечения и инсталяции нашей среды разработки (Раздел 1.2). Затем мы создадим наше первое приложение Rails, названное (достаточно подходяще) first_app. Учебник Rails прививает хорошие навыки программирования, так что сразу после создания нашего свежего нового проекта Rails, мы поместим его в управление версиями с Git (Раздел 1.3). И, верите вы в это или нет, в этой главе, мы даже разместим наше первое приложение в WWW развернув его в production 29 (Раздел 1.4).
В Главе 2, мы сделаем второй проект, целью которого будет демонстрация основ работы Rails приложения. Чтобы быстро стартануть, мы создадим это демонстрационное приложение (названное demo_app) используя scaffolding (Блок 1.1) для генерации кода; так как этот код и уродлив и сложен, Глава 2 мы сосредоточимся на взаимодействии с демонстрационным приложением через его URL3 используя веб-браузер.
В Главе 3, мы создадим пример приложения (названный sample_app), на сей раз написав весь код с нуля. Мы разработаем демонстрационное приложение, используя разработку через тестирование (test-driven development) (TDD), начнем Главу 3 созданием статических страниц, затем добавим немного динамического контента. В Главе 4 мы узнаем немного о языке Ruby, лежащем в основе Rails. Затем, в Главе 5 по Главу 10, мы завершим основу для примера приложения, сделав макет сайта, модель данных пользователя, и полные регистрационную и аутентификационную системы. Наконец, в Главе 11 и Главе 12 мы добавим микроблогинг и социальные функции, чтобы сделать рабочий пример сайта.
Конечный пример приложения будет иметь большое сходство с одним популярным сайтом – который, по совпадению, изначально был также написан в Rails4. Хотя, по необходимости, наши усилия и сосредоточатся на этом конкретном примере приложения, на протяжении Учебника Rails акцент будет на общих принципах, так, чтобы у Вас был прочный фундамент независимо от того, какие виды веб-приложений Вы хотите создавать.
Вставка 1.1. Scaffolding: Быстрее, легче, обольстительней
С начала Rails извлек выгоду из ощутимого чувства волнения, начавшегося с известного 15-minute weblog video творца Rails - David Heinemeier Hansson, теперь обновленного Ryan Bates -ом как 15-minute weblog using Rails 2. Эти видео - отличный способ познакомиться с мощью Rails, и я рекомендую посмотреть их. Но предупреждаю: они совершают свой удивительный пятнадцатиминутный подвиг, используя функцию под названием scaffolding, которая полагается в большЕй степени на сгенерированный код, волшебно создаваемый Rails командой generate
.
При написании Учебника Ruby on Rails было заманчиво положиться на подход scaffolding - он быстрее, легче, обольстительней. Но сложность и огромный объем кода в scaffolding могут быть крайне подавляющими для начинающего разработчика Rails, может быть Вы сможете его использовать, но Вы, вероятно, не будете понимать его. Следуя scaffolding подходу Вы рискуете превратиться в виртуозного генератора скриптов с пустяковыми (и хрупкими) фактическими знаниями Rails.
В Ruby on Rails Учебнике, мы будем придерживаться (почти) полярно противоположного подхода: хотя Глава 2 и разрабатывает небольшое демонстрационное приложение, с использованием scaffolding, ядро Учебника - пример приложения, которое мы начнем писать в Глава 3. На каждом этапе разработки примера приложения мы будем генерировать маленькие, съедобного размера куски кода, достаточно простые для понимания, но все же достаточно непривычные, требующие усилий. Суммарный эффект будет более глубоким, а более гибкое знание Rails даст Вам хорошие предпосылки для написания веб-приложения почти любого типа.