Ruby — динамический, рефлективный, интерпретируемый высокоуровневый язык программирования для быстрого и удобного объектно­-ориентированного программирования.

Ruby on Rails (RoR) — фреймворк, написанный на языке программирования Ruby для построения веб­-приложений. RoR предоставляет архитектурный образец Model­View­Controller (модель­-представление­-контроллер) для веб­-приложений, а также обеспечивает их интеграцию с веб-­сервером и сервером базы данных.

Основным преимуществом языка программирования Ruby и фреймворка RoR считается скорость разработки. Практика показывает, что скорость разработки проектов на RoR выше на 30 — 40 процентов по отношению к любому другому фреймворку. В первую очередь прирост скорости разработки определяется обширным набором готовых инструментов для RoR.

Одной из важнейших частей культуры Ruby/RoR является социальность. Решил проблему, — помоги решить другим. Реализовал свой модуль, — поделись с сообществом. Таким образом, на данный момент в открытом доступе хранятся тысячи готовых решений тех или иных задач, протестированные и рекомендованные многочисленным сообществом. Системы аутентификации, авторизации, комментирования, системы платежей, почтовые рассылки и многое другое, все то, что обычно разрабатывается «с нуля».

Начало по мере формирования группы

Продолжительность курса: 20 недель, 80 часов

Понедельник, Пятница: 18.30 — 21.00

1990 грн в месяц

Оплата ежемесячно

Записаться

Что нужно, чтобы поступить на курс:

 Прежде, чем стать нашим студентом, мы вас просим выполнить тестовое задание, чтобы мы могли определить уровень вашей подготовки.

Практическая задача, для проверки знания HTML, CSS, JS и реализации серверной части WEB приложения (pdf-файл содержит задание и пример интерфейса приложения) :

Задание

Готовые задания присылайте на адрес office@levelup.dp.ua ссылку на ваш код на Github, работающее приложение на Heroku или на свой сервер.

Для кого этот курc?

Курс предназначен для людей которые хотят стать профессионалами в WEB разработке. При этом слушатель должен обладать определенным набором знаний для освоения материала:

  • необходимы базовые знания HTML, CSS, JavaScript и иметь минимальный опыт работы в этих технологиях
  • знание базовых принципов работы баз данных и языка SQL
  • понимание объектно ориентированной парадигмы программирования
  • знакомство с одним из серверных языков программирования (PHP, Java, С++/С#, Python, …) приветствуется

Программа курса:

Ruby: Основы

Типы данных в Ruby

  • Числа
  • Строки
  • Диапазоны
  • Масивы
  • Хэши
  • Символы
  • Регулярные выражения

Переменные

Константы

Выражения

Операторы

  • Арифметические операторы
  • Операторы присваивания
  • Операторы условия
  • Логические операторы
  • Операторы условия
  • Операторы сравнения
  • Циклы

Методы

  • Определения
  • Аргументы
  • Возвращаемые данные
  • Блоки
  • Область видимости
  • Соглашения по именованию

Ruby: ООП

Объекты, классы, модули

  • Описание и создание класса
  • Конструктор, initialize
  • Свойства объекта, геттеры и сеттеры
  • Attribute readers, writers and accessors
  • Виртуальные атрибуты
  • Публичные и приватные методы
  • self (self в объектах, классы и self, private и self)
  • Атрибуты и методы класса
  • Наследование
  • super
  • Объекты и переменные
  • Клонирование и замораживание объектов
  • Описание и создание модуля
  • Миксины
  • Include, extend
  • Hook Methods

Обработка исключительных ситуаций

  • Операторы begin, rescue, raise
  • Операторы else, ensure
  • Операторы throw и catch

Ruby: Метапрограммирование

  • Переоткрытие классов и конверсия типов
  • Динамический вызов методов
  • Динамическое создание методов
  • Обработка Method missing
  • Методы instance_variable_get(), instance_variable_set(), instance_variable_defined?()
  • Замыкание
  • Динамическое создание классов
  • Методы instance_eval(), instance_exec()
  • Методы class_eval(), module_eval()
  • Singleton методы
  • Анонимный класс или Eigenclass
  • Атрибуты и методы классов
  • Aliases
  • Понимание blocks, procs, lambdas, methods

Ruby: Автотестирование

  • Экономика тестирования
  • Круг red, green, refactoring
  • RSpec
  • describe(), context() методы
  • it() метод
  • Pending тесты
  • Hooks: before, after, around
  • Методы помошники
  • Expectations
  • Matchers

Ruby: Библиотеки, Gems

  • RVM (установка, rubies, gemsets)
  • Bundler
  • Структура gem’а
  • Создание собственного gem’а
  • Тесторование собственного gem’а
  • Git
  • Github

Rails: Знакомство

  • Установка
  • Архитектура Rails приложения
  • Структура файлов
  • Работа с БД
  • MCV в Rails
  • REST

Rails: ActiveRecord

  • Миграции
  • Ассоциации (один-к-одному, один-ко-многим, многие-ко-многим, полиморфные ассоциации)
  • Валидации
  • Callbacks
  • Интерфейсы запросов
    1. Выборка объектов их БД
    2. Использование условий при выборке
    3. Сортировка
    4. Группировка, отступы, ограничения/li>
    5. Объединение таблиц
    6. Scopes
    7. Поиск или создание нового объекта
    8. Поиск по чистому SQL
  • Написание автотестов для моделей на RSpec

Rails: Routing

  • Ресурсы, CRUD
  • Добавление еще RESTful actions
  • Маршрутизация без использования ресурсов
  • Написание автотестов для маршрутизации на RSpec

Rails: Controllers

  • Соглашения по именованию, controllers, methods and actions
  • Параметры
  • Cookies
  • Сессия
  • Rendering шаблонов HTML, JSON, XML
  • Фильтры
  • Request и response объекты
  • HTTP статусы и заголовки
  • Переадресация
  • Создание API сервера
  • Написание тестов для контроллера на RSpec

Rails: Views

  • Rendering
  • Структура файлов, соглашения по именованию
  • Шаблонизаторы, ERB, Haml
  • Layouts, структура файлов, yield, content_for
  • Partials
  • Helpers методы, помошники для view
  • Работа с формами
  • Написание тестов для views на RSpec

Rails: Asset pipeline

  • Подключение CSS
  • Sass
  • Подключение JavaScript
  • CoffeeScript

Rails: Написание Integration и Acceptance тестов

  • BDD
  • Знаковство с инструменрами
    1. Capybara
    2. DatabaseCleaner
    3. FactoryGirl
    4. ShouldaMatchers
    5. PhantomJS, Poltergeist
    6. Jasmine
  • Выбор и настройка Continuous Integration Server

Rails: Engine

  • Структура Rails Engine
  • Создание Rails Engineи
  • Написание тестов для Rails Engine

Rails: развертывание приложения на сервере

  • Выбор и настройка архитектуры сервера
    1. Chef Автоматическое создание архитектуры
  • Развертывание приложения
    1. Capistrano инструмент для автоматизации и развертывание приложений на серверах
  • Работа с Heroku Cloud Application Platform

Rails: Готовые инструменты для быстрой разработки

  • Devise гибкое решение аутентификации пользователей
  • CanCan решение для авторизации
  • RailsAdmin решение для управление данными, позволяет быстро создать админку
  • Carrierwave решение для загрузки файлов
  • Kaminari гибий инструмент для реализации построничного вывода данных
  • Draper добавляет объектно-ориентированный слой логики представления
  • … и многое другое

Чему я буду учиться?

После ряда лекций и практических занятий, вы узнаете, как использовать такие мощные инструменты, как язык программирования Ruby и MVC Framework Ruby on Rails.

Основные темы включают в себя:

  • Основы программирования на Ruby;
  • Метапрограммирование на Ruby;
  • Написание автотестов и разработка через тестирование;
  • Как сделать код лучше. Refactoring;
  • Эффективная разработка WEB-приложения на основе Ruby on Rails;
  • Проектирование архитектуры приложения;
  • Техники программирования (best practice) на Ruby и Ruby on Rails;

Также вы познакомитесь с практиками Extreme Programming (XP), поучаствуете в разработке проектов по методологии Scrum.

Что мне это даст?

По окончании курса вы получите знания на уровне Junior/Middle Ruby/Rails программист и готовое портфолио, обретете практический опыт разработки высококачественных приложений на Ruby on Rails, познакомитесь с Agile практиками и поучаствуете в разработке реальных проектов. Основная задача курса не просто выдать материал, а дать практические навыки и опыт, научить решать реальные задачи. После курса вы сможете сказать своему работодателю: ‘Я это умею, я это уже делал‘ а не: ‘Я слышал/читал как это можно сделать‘.

Курс Ruby on Rails организован по инициативе компании Ruby Garage. Лучшие выпускники этого курса будут рекомендованы для приема на работу в компанию.

Дополнительно к обучению Вы получаете:

Сертификат учебного центра

Отличникам рекомендательное письмо

Преподаватель:

sds

Владимир Воробьев

Общий стаж работы: Общий стаж работы WEB-разработчиком составляет более 10 лет, опыт работы с Ruby/Rails платформой более 5 лет.

Профессиональная деятельность:  В настоящее время занимает должность WEB developer / architect / team lead в компании RubyGarage.

В активе: В активе Владимира более 30 завершенных коммерческих проектов на Ruby/Rails, которые варьируются от Стартапов, eCommerce решений до глобальных Saas проектов и решений для государственных и банковских учреждений. Сделал вклад в Spreecommerce это ecommerce open source решение для Ruby on Rails. Является преподавателем по Ruby со стажем более 3x лет. Принимает активное участие в развитии Ruby сообщества на Украина.

Отзывы: