Как будет работать этот курс

Добро пожаловать в Rails! Возможно, вы сразу начали с этого курса (если вы хотите начать делать сайты), или вы уже прошли курс, посвященный Ruby и имеете крепкую основу для изучения Rails. В любом случае, мы здесь неплохо повеселимся.

Вы уже должны иметь представление о том, что такое Rails, поскольку мы рассказывали об этом в предыдущих уроках (смотрите раздел "Что нужно знать" чуть ниже). Теперь пора воспользоваться приобретенными теоретическими знаниями и начать создавать сайты. Эта часть учебного плана будет больше сосредоточена на практических задачах, нежели остальные. Вам по-прежнему придется читать документацию, посты в блогах и смотреть видео перед написанием кода, но в основном мы будем больше сосредоточены на практических проектах.

После каждого урока или двух вам будет дана задача: создать один или несколько независимых проектов, удовлетворяющих изученным концепциям (что мы и делали до текущего момента). Так же вам нужно будет пройти 1-2 главы из Туториала по Ruby on Rails Майкла Хартла (по ссылке доступен русскоязычный перевод последней версии руководства).

Этот туториал нередко оказывается излишне глубоким для новичков в Rails, но мы будем использовать его как пример создания большого цельного проекта, по одной главе за раз по мере того, как вы проходите уроки этого курса. У вас должно будет сложиться лучшее представление о том, что происходит в руководстве, чем у типичного новичка, поскольку мы будем рассматривать каждый соответствущий принцип перед тем, как непосредственно писать код, следуя руководству.

План действий

Мы начнем с обзора таких важных тем, как HTTP, MVC, REST, API, Cookies и аутентификация, чтобы немного освоиться в них прежде, чем взяться за самое интересное.

Мы будем двигаться "задом наперед", начав с роутинга, затем будут контроллеры и представления (так же их называют "вьюхи" (views)), чтобы сделать функциональный (хотя пока и не особо красивый) интерфейс для отображения данных. Далее вы узнаете о хранении и поиске информации в базах данных при помощи SQL и о том, как обернуть этот SQL в запросы Active Record. Затем мы расскажем о формах, области, которая намного больше действует "за кулисами", чем вы ожидали, об аутентификации, которая является ключом к безопасности вашего приложения. Завершим изучением таких полезных тем, как состояния и assets pipeline, чтобы плавно закрыть начальный этап изучения Rails.

Но мы не можем здесь остановиться, так что придется вернуться к ActiveRecord и дать вам инструменты, которые реально заставят ваши данные плясать, а так же больше рассказать о формах, которые нужны, чтобы предоставлять пользователю расширенные возможности. Это действительно важная часть Rails, так что мы потратим некоторое время на её изучение.

Наконец, мы рассмотрим еще несколько полезных тем: отправка почты из вашего приложения, создание и взаимодействие с API, шаблоны дизайна, метапрограммирование и продвинутый роутинг. Эти темы будут освещены до того, как вы возьметесь за создание финального проекта.

Наши инструменты и тексты

Самые важные инструменты, которыми мы будем постоянно пользоваться, это RusRails и Ruby on Rails Tutorial. Вместе они образуют практически полный набор опенсорсных ресурсов для изучения Rails.

RusRails является полноценной, полностью опенсорсной книгой-справочником по Rails. Временами там можно найти чуть больше технической информации, чем вам захочется знать, но это нормально и полезно - рано или поздно знания придется углублять. Когда вы позднее соберетесь в гугл, чтобы поискать решение какой-либо задачи, и там не будет ссылки на StackOverflow, вероятнее всего, там будет ссылка на RusRails.

Ruby on Rails Tutorial (так же известный, как "Туториал Хартла", по имени автора) - это еще один опенсорсный ресурс, который (на протяжении почти 100 страниц) позволяет последовательно создать полноценное веб-приложение (клон Twitter), включая введение в тестирование.

Наш обычный рабочий процесс вот уже длительное время выглядит примерно так:

  1. Я знаю, что за фичу я хочу воплотить... Погуглю, вдруг кто-то уже делал такое же. Попадаю на вопрос с StackOverflow, который описывает, как создать подобную штуку.
  2. Пост на SO показывает мне верное направление, так что я гуглю конкретный метод, который упомянут в посте, но непонятен мне. Оказываюсь на странице RusRails, которая описывает этот метод.
  3. Лезу в свою завершенную версию проекта от Rails Tutorial, чтобы убедиться в правильности синтаксиса и возможно подсмотреть, как лучше написать тесты во время реализации моей фичи.

Как видите, я часто полагаюсь на основные ресурсы, при помощи которых вы будете обучаться. Вы обнаружите, что они все еще полезны даже через некоторое время после завершения этого курса, так что имеет смысл с ними ознакомиться :)

Что нужно знать

Если вы не выполнили описанное ниже, убедитесь, что проделаете все это, прежде чем приступите:

  • У вас должен быть установлен весь софт, описанный в Проекте "Установки".
  • Вы должны тщательно изучить все описанное в курсе "Основы веб-разработки".

    • Прочтите весь раздел "Бэкенд" из курса "Основы веб-разработки"
    • Выполните как минимум полный урок Основы Ruby (все рекомендованное к прочтению, текст урока и проекты), чтобы быть хорошо подкованным в фундаментальных вопросах Ruby.
    • Прочтите раздел, посвященный Rails, чтобы получить представление о фреймворке.
    • Создайте проект на Rails из раздела курса "Основы веб-разработки", чтобы получить практический опыт работы с Rails.

Дополнительные ресурсы

Этот раздел содержит полезные ссылки на дополнительные материалы. Они не обязательны, так что расценивайте их как нечто полезное, если вы хотите поглубже погрузиться в тему

  • StackOverflow: Summary of Ruby on Rails Fundamental Concepts
  • Если вы хотите погрузиться прямо в полностью интерактивный курс по Rails в браузере, попробуйте Code Learn (и поделитесь с нами вашим мнением о нем)
  • Не так давно интерактивный курс по Rails появился и у Codecademy. Если хотите, попробуйте пройти и его (и так же не забудьте поделиться мнением в комментариях или в письме :)

Поделиться уроком: