Воркшоп для Ruby и Rails разработчиков, которые хотят значительно сократить время ожидания выполнения тестов на CI и/или локально и тем самым ускорить цикл обратной связи при разработке, минимизировать задержку между публикацией изменений и их выкаткой, а также снизить расходы на CI-инфраструктуру.
Что будет?
Подходы
На воркшопе рассмотрим разные подходы для профилирования и оптимизации тестов, следующие принципу «максимум выгоды при минимуме изменений» (ведь никто не будет переписывать тесты или менять архитектуру приложения лишь для того, чтобы ускорить тесты).
Инструменты
Освоим такие общие инструменты для профилирования Ruby-приложений как Stackprof и Vernier, а также подробно познакомимся со специализированным пакетом TestProf.
Навыки
Полученные навыки вы сразу же сможете применить на своих проектах. И не удивляйтесь, если всего за несколько часов вы сможете ускорить ваши тесты в несколько раз!
Программа:
День 1. Проблема медленных тестов. Профилирование тестов как обычного Ruby-кода.
На старте обсудим, почему медленные тесты влияют на процесс разработки. Рассмотрим различные способы ускорения тестов, не требующие профилирования и оптимизаций кода тестов.
Затем, попробуем стандартные способы поиска узких мест в Ruby-коде для оптимизации тестов. Узнаем, какие классы проблем в тестах они способны диагностировать и как эти проблемы устранять.
В результаты вы:
узнаете об альтернативных, внешних (не требующих профилирования и рефакторинга) способах ускорения тестов и их ограничениях;
попробуете на практике такие инструменты профилирования, как StackProf, RubyProf, Vernier;
научитесь читать флеймграфы;
узнаете о типичных проблемах конфигурации тестов, которые значительно влияют на скорость выполнения.
День 2. Подробное знакомство с TestProf. Профилирование фабрик.
Познакомитесь с инструментами профилирования, входящими в TestProf, которые позволяют сузить область рефакторинга тестов для минимизации отношения трудозатрат к полученному ускорению:
научитесь выделять медленные типы с помощью TagProf;
сможете оценивать влияние определённых методов или событий в коде на скорость выполнения с помощью EventProf;
разберетесь как профилировать использование фабрик с помощью FactoryProf.
В результате вы:
сможете определить небольшой набор тестов, оптимизация которых, с одной стороны, даст значительный прирост скорости, а с другой — позволит сформировать набор техник рефакторинга, специфичный для приложения.
День 3. Оптимизация тестов с помощью переиспользования данных. Автоматизация профилирования и рефакторинга.
В завершающей части мы перейдём к оптимизации конкретных файлов и познакомимся с инструментами TestProf для переиспользования данных в тестах:
before_all / let_it_be для переиспользования данных в рамках контекста RSpec (локальные фикстуры);
AnyFixture для глобальных программно генерируемых фикстур.
В результате вы:
сформируете подходы к рефакторингу тестов, характерных для своего проекта, которые смогут быть применены к тестовым файлам для достижения желаемого ускорения.
В завершение обсудим возможности автоматизации, предоставляемые TestProf, в частности TestProf Autopilot.
[Thinknetica] Профилирование и оптимизация тестов Rails-приложений. Тариф Слушатель (Владимир Дементьев)
463 ₽
Описание
Отзывы (0)
Только зарегистрированные клиенты, купившие данный товар, могут публиковать отзывы.
Оплата и Доставка
Оплата принимается с большинства платежных систем, после оплаты взноса материал будет находится в Личном кабинете в разделе заказы и дополнительно направлен на Емейл, указанный при оформлении заказа.
Отзывы
Отзывов пока нет.