[hexlet.io] Профессия Разработчик на Ruby on Rails
- Ruby. Один из самых выразительных и объектно-ориентированных языков современности
- REST API. Как правильно проектировать, версионировать и дорабатывать
- Rails. Фреймворк, который стал эталоном в мире бекенд веб-фреймворков и остается таким до сих пор
- Jobs. Тяжелые и не надежные (сеть) задачи могут блокировать сервер, поэтому их выполняют в фоне в специальных job workers
- ORM. Определение моделей, связей между ними, подключение конечных автоматов и многое другое – всё это ORM
- Качество. Автоматизированные тесты — неотъемлемая часть профессиональной разработки
- Архитектура. Создание простого для анализа и изменения кода требует хорошего понимания принципов его организации
- Инфраструктура. Программирование — это не только код, но и сопутствующие инструменты: Rubygems, Bundler, Rake
Совмещайте учебу с работой. Учитесь, когда вам удобно — у нас нет строгого расписания. Рекомендуем заниматься от 15 часов в неделю, чтобы сохранять темп обучения в группе.
Уроки
- Теория в формате видео-лекций, домашние задания с автопроверкой
- Самостоятельно, в удобное время
- Если непонятно, можно задать вопрос в чате группы наставнику или одногруппникам
- Вебинары, слаконары, сессии лайв-кодинга
- Один раз в неделю, онлайн, проводит наставник
- Если не получается присутствовать, можно смотреть в записи
- Реальные приложения, сервисы и сайты — вы пишете их с нуля до релиза
- Самостоятельно, в своем темпе, примерно месяц на каждый проект
- Наставник контролирует и дает обратную связь
Очень много практики
- Домашние задания с моментальной автопроверкой. Выполняйте их, когда вам удобно
- 4 проекта для портфолио на GitHub – по одному для каждого учебного модуля. Начинаем с простого и погружаемся в разработку для реального бизнеса
- 11 Open Source проектов Хекслета — научитесь работать с чужим кодом, оформлять пулреквесты. Это ваш опыт реального продакшна и +100 очков в карму программиста
- 150 тестовых заданий от наших партнеров – работайте с базой типовых задач из настоящих проектов. Это придаст уверенности на собеседованиях
Познакомьтесь с экосистемой 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 для заглушки внешних вызовов
Анализатор качества репозиториев
Проект, который помогает автоматически следить за качеством репозиториев на гитхабе. Он отслеживает изменения и прогоняет их через встроенные анализаторы. Затем формирует отчеты и отправляет их пользователю.
Продажник: