Classic Season 3 — это серия скринкастов, посвящённая практическому TDD, работе с устаревшим кодом, рефакторингу и улучшению архитектуры. В уроках вы увидите, как шаг за шагом строятся тесты, принимаются инженерные решения и формируется ясный, гибкий код. Серия подходит тем, кто хочет глубже понять TDD и научиться применять его в реальных проектах.
Что вас ждёт в Classic Season 3
Сезон объединяет темы, связанные с тестированием, архитектурой и инструментами разработчика. Ниже — расширенный обзор каждого эпизода с пояснениями о том, какую пользу вы получите.
Скринкасты
Что происходит в Active Records
Разбираем, какие методы должны оставаться в моделях ActiveRecord, а какие лучше вынести в отдельные Ruby-классы. Вы научитесь понимать границы ответственности и поддерживать модели лёгкими и читаемыми.
Что происходит в Active Records, часть 2
Продолжаем очищать модель: удаляем неподходящие элементы, заменяем обратные вызовы отдельным промежуточным объектом, выносим вспомогательную логику за пределы модели.
Вне TDD: Stubs против Stash
Показано, как выбирать подход к изоляции — использовать ли заглушки или подход stash. Обсуждаются практики, позволяющие избегать громоздких коммитов и упрощать рабочий процесс.
Веб‑приложения: когда тестировать в изоляции
Урок помогает понять, в каких случаях тесты должны быть изолированными, а когда необходимо интеграционное покрытие. Подробно рассматриваются зависимости между слоями веб‑приложения.
Untested Code, часть 1: Introduction
Начало большой серии о работе с «наследственным» и непокрытым тестами кодом. Создаём тесты вокруг Rails‑контроллера и определяем ожидаемые поведения через контексты RSpec.
Untested Code, часть 2: Adding Tests
Расширяем покрытие, тестируя ранее выделенные контексты. Учимся корректно изменять код, ориентируясь на тесты, и работать с блоком response_to.
Untested Code, часть 3: Refactoring 1
Проводим рефакторинг контроллера на основе тестов: убираем лишнюю логику в модели, структурируем действие и улучшаем читаемость.
Untested Code, часть 4: Refactoring 2
Выносим часть логики в новый изолируемый класс. Урок показывает, как сделать код удобнее для тестирования и уменьшить связанность.
Emacs, Chainsaw of Chainsaws
Сравнение Emacs и Vim: обсуждаются настройки, расширения и особенности использования редактора, включая проект Evil Mode.
Stubbing Unloaded Dependencies
Обзор практик заглушки зависимостей без полной загрузки приложения. Рассматриваются новые возможности RSpec и альтернативные подходы.
Brittle and Fragile Tests
Разбираем разницу между brittle и fragile тестами, обсуждаем, как избегать хрупкости при изолированном подходе.
Repository Statistics in Raptor
Смотрим, как извлекать статистику из Git‑репозитория. Урок полезен тем, кто хочет лучше анализировать историю проекта.
Сценарий статистики Raptor иrun-command-on-git-revisions
Generating Coupons With Bash
Создаём Bash‑скрипт, генерирующий купоны из случайных Unix-слов. Отличный пример применения скриптов и улучшения их структуры.
Shorter Class Syntax
Экспериментируем с сокращением синтаксиса классов в Ruby. Результат доступен как gem.
When to Generalize in TDD
Разбираем, когда стоит обобщить код, а когда достаточно добавить новый тест. Практический взгляд на эволюцию тестируемых решений.
The .vimrc
Подробно рассматриваем файл .vimrc, обращая внимание на настройки для Ruby и тестирования.
.vimrc на GitHub итестовый плагин
Pushing Complexity Down
Учимся выталкивать сложность на более низкие уровни архитектуры, делая систему проще и надёжнее. Практика, которая напрямую улучшает дизайн.
Three Test Shapes
Обзор трёх ключевых форм тестов: неизменность, локальная мутация и глобальная мутация. Урок помогает глубже понять природу тестирования.
Почему стоит пройти этот сезон
- Вы научитесь применять TDD в реальных условиях.
- Поймёте, как рефакторить устаревший и неподдерживаемый код.
- Узнаете о правильной изоляции тестов и работе с зависимостями.
- Прокачаете навыки работы с инструментами разработчика.
- Посмотрите, как принимает решения опытный инженер.
Classic Season 3 — это глубокое погружение в инженерное мышление, тестирование и архитектуру. Если вы хотите писать надёжный, чистый и поддерживаемый код — этот сезон станет отличной практикой.