Старый Добрый Код: как жить с существующим кодом
Воркшоп для разработчиков, которые хотят рационально подходить к улучшению существующего кода и научиться оптимально и безопасно рефакторить его "под прикрытием" тестов.Результат
- Научитесь определять проблемные места в коде, который нужно изменить
- Поймёте как находить компромиссы между желанием написать "красивый" 100% покрытый тестами код и реальными условиями
- Научитесь отличать стабы и моки (а также doubles и spies)
- Сможете использовать быстрые методы рефакторинга
- Научитесь тестировать код, имеющий внешние зависимости, в т.ч. обращающийся к внешним сервисам
- Сможете выбирать, какие тесты будете писать в том или ином случае
День 1. Введение в работу с легаси. Начинаем писать тесты для легаси.
- разберёмся, что такое существующий код и legacy и зачем с ним работать
- закрепим знания о coupling и cohesion и приложим их к существующему коду
- рассмотрим примеры из реального опенсорса
- напишем тесты, в том числе с помощью webmock и vcr
- узнаем об опасностях коллбеков
- организуем код с помощью service object
- тестировать код, далёкий от идеала
- отличать стабы и моки
- изучим виды тестов в Rails и остальном мире
- поймем бывают ли юнит-тесты
- разберем dependency injection
- рассмотрим паттерн result object
- справиться с дилеммой легаси-кода
- рассмотрим общие практики для работы с унаследованным приложением (оформление документации, обновление зависимостей, рабочие процессы в команде)
- обсудим, как находить время на рефакторинг и написание тестов
- подведём итоги воркшопа, вспомним, чему научились
- актуализируете знания по практикам
- составите свой чек-лист для работы с унаследованным приложением
- писать поддерживаемый код, постепенно улучшать архитектуру существующих приложений
- уменьшать количество багов в существующих приложениях
- избегать ситуаций "починили одно" => "отвалилось другое"
- научиться качественно тестировать Rails-приложения и повысить покрытие кода тестами (а также разобраться когда стоит это делать, а когда нет)
https://thinknetica.com/pro/workshop_good_old_code?utm_source=telegram&utm_medium=post&utm_campaign=workshop_good_old_code_0823