[hexlet.io] Профессия Разработчик на Ruby on Rails

700

Профессия Разработчик на Ruby on Rails Ruby. Один из самых выразительных и объектно-ориентированных языков современности
REST API. Как правильно проектировать, версионировать и дорабатывать
Rails. Фреймворк, который стал эталоном в мире бекенд веб-фреймворков и остается таким до сих пор
Jobs. Тяжелые и не надежные (сеть) задачи могут блокировать сервер, поэтому их выполняют в фоне в специальных job workers
ORM. Определение моделей, связей между ними, подключение конечных автоматов и многое другое – всё это ORM
Качество. Автоматизированные тесты — неотъемлемая часть профессиональной разработки
Архитектура. Создание простого для анализа и изменения кода требует хорошего понимания принципов его организации
Инфраструктура. Программирование — это не только код, но и сопутствующие инструменты: Rubygems, Bundler, Rake
Расписание
Совмещайте учебу с работой. Учитесь, когда вам удобно — у нас нет строгого расписания. Рекомендуем заниматься от 15 часов в неделю, чтобы сохранять темп обучения в группе.

Уроки
Теория в формате видео-лекций, домашние задания с автопроверкой
Самостоятельно, в удобное время
Если непонятно, можно задать вопрос в чате группы наставнику или одногруппникам
Мероприятия
Вебинары, слаконары, сессии лайв-кодинга
Один раз в неделю, онлайн, проводит наставник
Если не получается присутствовать, можно смотреть в записи
Проекты
Реальные приложения, сервисы и сайты — вы пишете их с нуля до релиза
Самостоятельно, в своем темпе, примерно месяц на каждый проект
Наставник контролирует и дает обратную связь

Очень много практики
Домашние задания с моментальной автопроверкой. Выполняйте их, когда вам удобно
4 проекта для портфолио на GitHub – по одному для каждого учебного модуля. Начинаем с простого и погружаемся в разработку для реального бизнеса
11 Open Source проектов Хекслета — научитесь работать с чужим кодом, оформлять пулреквесты. Это ваш опыт реального продакшна и +100 очков в карму программиста
150 тестовых заданий от наших партнеров – работайте с базой типовых задач из настоящих проектов. Это придаст уверенности на собеседованиях

Программа курса
1. Знакомство с Ruby
Познакомьтесь с экосистемой Ruby, настройте линтеры, устанавливайте зависимости с помощью Bundler. Изучите ключевые возможности языка, которые позволят вам реализовывать большинство прикладных задач. Погрузитесь в продвинутое объектно-ориентированное программирование и метапрограммирование. Научитесь создавать свои языки-предметной области (DSL) и публикуйте их в виде готовых гемов.
Настройка окружения: gems bundler rubocop
Менеджер версий Ruby (asdf)
Функции Циклы Условия
ООП: Классы Модули Миксины
Метапрограммирование
Автоматизированное тестирование (Rspec)
Устройство гемов
Итоговый проект
Генератор форм
Библиотека, с помощью которой удобно создавать формы в шаблонах сайтов. Позволяет сократить код описания формы во много раз за счет автоматической обработки ошибок и различных контролов.

2. Основы Rails
Научитесь создавать сайты на Rails, покрывать их автоматическими тестами и выкладывать на Heroku. Разберитесь с основными концепциями фреймворка, такими как контроллеры, роутинг, модели, шаблоны и тесты. Автоматизируйте большинство рутинных задач, используйте генераторы, автоматические формы и интеграцию фронтенда. Освойте репл и эффективную отладку. Узнайте про основные принципы построения безопасных приложений.

Контроллеры и Ресурсный роутинг
Модели, Валидация, Миграции
Автоматические формы (Simple Form)
Отладка через REPL (binding.irb)
Тестирование Rails приложения
Встроенные и подключаемые генераторы кода
Интеграция бекенда с фронтендом (Webpacker)
Деплой (Heroku)
Непрерывная интеграция (Github Actions)
Итоговый проект
Коллективный блог
Аналог habr.com. Каждый пользователь может создать запись и опубликовать ее в одной из общих категорий. Другие пользователи ставят оценки и комментируют добавленные посты.

3. Реальный Rails
Погрузитесь в типичные задачи веб-разработки. Научитесь строить правильную авторизацию. Создавайте динамические формы с загрузкой файлов во внешние хранилища. Усильте модели с помощью стейт машин и реализуйте быструю фильтрацию для списков. Передавайте данные с бекенда на фронтенд без боли и кодинга, отправляйте письма и используйте эффективные haml-like шаблонизаторы. Пишите системные тесты и используйте фабрики для генерации данных

Авторизация (Pundit)
Автоматические вложенные формы (Cocoon)
Загрузка и хранение файлов и картинок. Ресайз. (ActiveStorage)
Управление стейт машинами (aasm)
Сложная фильтрация данных (Ransack)
Отправка писем
Haml-like шаблонизация (Slim)
Системные тесты (Capybara)
Тестовые фабрики для генерации данных (factory_bot)

Итоговый проект
Доска объявлений
Аналог avito.ru. Сервис, на котором можно размещать объявления и выполнять поиск по существующим. Включает в себя процессы публикации и управлении объявлениями, продвинутый поиск и многое другое.

4. Полный Rails
Используйте асинхронные Jobs (на базе очередей) для обработки долгих и тяжелых запросов. Разработайте свое собственное API в соответствии с REST архитектурой. Научитесь легко тестировать код с большим количеством внешних запросов и побочных эффектов.
Асинхронные задачи (ActiveJob, Sidekiq)
Построение REST-апи
Представление данных в разных форматах (respond_to, Jbuilder)
Использование Webmock для заглушки внешних вызовов
Итоговый проект
Анализатор качества репозиториев
Проект, который помогает автоматически следить за качеством репозиториев на гитхабе. Он отслеживает изменения и прогоняет их через встроенные анализаторы. Затем формирует отчеты и отправляет их пользователю.