Classic Season 5 — это насыщенная серия скринкастов, где вы познакомитесь с реальными техническими кейсами, глубже поймёте архитектуру Ruby, Rails, Python и C, а также освоите эффективные стратегии тестирования.
Что вас ждёт в Classic Season 5
Сезон охватывает широкий спектр тем: от рефакторинга и повышения производительности до глубокого анализа объектных систем и подходов к тестированию. Такой формат помогает не просто посмотреть процесс разработки, а понять причины решений и способы их реализации.
Подробный разбор скринкастов
1. Collapsing Services Into Values
Разбирается ограниченность архитектуры моделей ActiveRecord и предлагается более чистый подход: преобразование сервисов в объект-значение. Это делает тесты быстрее, изолированными и легче анализируемыми.
2. Splitting Active Record Models
Продолжение темы реорганизации данных. Логика подписок переносится из класса User в отдельную модель, что снижает связность и улучшает читаемость. Возникает важный вопрос — где должна жить бизнес-логика?
3. Removing a Rubinius Feature
Вы познакомитесь со структурой Rubinius, научитесь безопасно удалять функции, обновлять зависимости и корректно проверять изменения. Подчеркивается важность точности при работе с объектной системой.
4. Python vs. Ruby Objects
Сравнение object model в Python и Ruby, ключевые различия между атрибутами и методами, а также влияние этих различий на проектирование кода.
5. Where Correctness Is Enforced
Показано, почему контроллеры — ненадёжное место для проверки данных, и как перенос валидаций в базу данных устраняет уязвимости и повышает корректность данных.
6. Separating Arrangement and Work
Правильное разделение ответственности между объектами помогает улучшить тестируемость и перейти к акторной модели, где данные и процессы обрабатываются естественным образом.
7. Primitive Obsession
Анализ синдрома "примитивной одержимости". Пример refactoring-а класса Screencast показывает, как замена примитивов на объектные структуры делает код гибче.
8. Isolating by Separating Value
Метод тестирования без заглушек: разделение данных и поведения для создания действительно изолированных и надёжных тестов.
9. Imperative to OO to Functional
Сравнение парадигм программирования через последовательный рефакторинг кода. Отличный способ увидеть, как разные подходы формируют архитектуру приложения.
10. Debugging With Tests
Преобразование реальных bug reports в автотесты помогает локализовать ошибки и гарантировать, что они не повторятся в будущем.
11. Test Cases vs. Examples
Вы узнаете о различиях между тестовыми случаями и подходом с примерами, а также на практике увидите конвертацию тестов Hamster из одного стиля в другой.
12. A Bit of C
Практическая работа с проектом на C, включая модульные тесты и современные подходы к проектированию. Подойдёт тем, кто хочет глубже понять системный уровень.
13. Analyzing Context Switches
Изучение инструментов анализа производительности UNIX, включая измерение переключений контекстов. Отличная база для изучения низкоуровневой оптимизации.
14. Actor Syntax From Scratch
Создание синтаксиса акторов на Ruby с нуля. Пример показывает гибкость языка и даёт представление о ключевых принципах Actor Model.
15. Running Tests Asynchronously
Методика асинхронного запуска тестов с использованием tmux и Unix-примитивов, что поможет ускорить рабочий процесс.
16. Test Recommendations
- Разделяйте unit и интеграционные тесты.
- Используйте альтернативные конструкторы для тестируемых объектов.
- Давайте заглушкам понятные имена.
- Не подменяйте примитивы.
- Учитывайте сложность подготовки окружения теста.
- Ограничивайте только те элементы, которым доверяете.
17. When Rails Is Right
Показаны ситуации, где стандартные механизмы Rails — действительно оптимальный выбор. Рефакторинг контроллеров подчёркивает важность чистой архитектуры и правильного распределения обязанностей.
18. A Day in The Life
Финальный скринкаст — личный взгляд на workflow, инструменты и опыт многолетней работы над Destroy All Software. Завершение сезона с благодарностью подписчикам.
Кому подойдёт сезон
Этот сезон будет ценен:
- инженерам, стремящимся улучшить качество тестов и архитектуры;
- разработчикам Ruby, Python и C;
- тем, кто хочет понять реальные практики профессионального программирования;
- тем, кто ищет глубокие технические разборы без воды.
Преимущества изучения Classic Season 5
- Практические примеры из реальных проектов.
- Сравнение парадигм и языков программирования.
- Улучшение навыков тестирования и рефакторинга.
- Глубокое понимание объектных моделей.