Ruby on Rails - это прорыв в снижении входного барьера в программировании. Мощные веб–приложения, которые раньше разрабатывались за недели или месяцы, теперь могут быть сделаны за считанные дни.
Акцент курса делается на понимание и практику программирования на языке Ruby в объектно-ориентированном стиле c использованием самого популярного, мощного и в тоже время простого фреймворка - Rails, написанного Девидом Хэйнемеером-Хенсcоном.
Для увеличения объема пройденного материала часть теории будет Вашей домашней работой с последующим закреплением в форме вопросов, обычно задаваемых на собеседовании.
Фреймворк Rails сочетает в себе все передовые технологии, идеи и паттерны проектирования, благодаря чему разработка на нем становится в разы проще и быстрее.
Преимущества Ruby on Rails для разработки веб-проектов:
- Большое, развивающееся сообщество
- Огромное количество готовых библиотек и кода
- Скорость разработки веб-приложений с использованием Ruby on Rails в разы меньше
- Язык Ruby более легкий, чем PHP и имеет более понятный синтаксис
- Производительность. С каждой новой версией Ruby оптимизируется, и уже Ruby 1.9 обогнал по производительности PHP, Perl, Python3.
Практика на нашем курсе:
Результатом практической части курса и домашней работы будет разработка веб-проекта:
- Интернет-магазин
- CMS
- Финансовый менеджер
- CRM
- Система управления складом
- Любой проект по вашей идее
Каждое занятие начинается с проверки домашнего задания и вопросов по нему. Просьба не опаздывать.
Требования к участникам:
- знание основ программирования на одном из объектно-ориентированных языков
Программа курса:
Занятие 1. Знакомство. План курса. Основы.
- знакомство
- что такое Ruby, Ruby on Rails и чем это может быть полезно?
- история языка (причины возникновения,история развития)
- установка и настройка, выбор редактора
- hello world, основы синтаксиса
- консоль, аргументы в консоли
- архитектура MVC
- источники информации
Практика:
- Установка Ruby, RVM (Ruby version manager)
- Установка Rails
- Работа в консоли ruby
- Демо: блог на RoR
Занятие 2. Введение в разработку проекта
- Создание проекта
- Файловая структура проекта
- Bundler
- Создание контроллера и вьюх
- Обработка запросов к сервер; роутинги
Практика:
- Создаем проект
- Устанавливаем необходимые гемы
Занятие 3. MVC и базы данных. Модель.
- Базы данных (создание, настройка проекта)
- Генерация миграций
- Rake таски; Модели Active Record
- Понимание Active Relation
- Выборки, условия, скоупы
Практика:
- Работа из rails консоли.
- Рассматриваем проекты из домашнего задания и проектируем их MVP
Занятие 4. MVC. Контроллеры (Controllers)
- Понимание CRUD
- Index, show, new, create, update/edit, delete
- Массовое присваивание
- Flash hash
- Ассоциации
- 1-many, 1-1, many-many, другие
Практика:
- Применение новых знаний к домашнему проекту
Занятие 5. MVC. Вид (View)
- отрисовка шаблонов
- редиректы, паршелы
- лейауты, хелперы
- ассеты, картинки, стили, javascript
Практика:
- Применение новых знаний к домашнему проекту
Занятие 6. Гемы и сторонние библиотеки.
- Gemfile
- devise
- carrierwave
- formtastic
- active_admin
Практика:
- Применяем самые популярные гемы:
- загрузка файлов
- авторизация
- админ панель
- хелперы для форм
- и другие
Занятие 7. Системы контроля версий.
- Обзор систем контроля версий
- GIT, работа с ним
- SVN
Практика:
- Работа с GIT в команде
Занятие 8. REST and RESTful роутинги, API
- Что такое REST?
- Вложенные ресурсы
- REST HTTP verbs
- сервисы
- дебаг
Практика:
- Проектируем API, где rails-проект выступает бекендом для мобильного приложения
Занятие 9. Тестирование проекта
- разработка через тестирование (TDD)
- фреймворки TestUnit, Minitest, Rspec
- тестирование контроллеров
- тестирование моделей
- интеграционные тесты
Практика:
- Пишем тесты к своим проектам
Занятие 10. Развёртывание проекта
- capistrano
- heroku
- chef
- наставления на "путь истинный"
- вопросы по проектам
- подведение итогов
Практика:
- Capfile, установка окружения на VPS, деплой проекта через capistrano
- Решение вопросов по проектам
Official web-site
http://levelp.ru/courses/programmirovanie/ruby-on-rails-developer/
Contacts