1 день. Вводная + Рефакторинг
Упражнение 1. Выделить метод
Упражнение 2. Переименовать переменную/метод
Упражнение 3. Переместить метод
Упражнение 4. Замена временных переменных вызовами
Упражнение 5. Frequent Renter Points
Упражнение 6. Разбить цикл
Упражнение 7. Замена switch полиморфизмом
Упражнение 8. Что будет, если проводить рефакторинг без тестов
Упражнение 9. Code smells
Упражнение 10. Разбиение условий на стратегии
Обсуждение
- Разбор ситуаций, предложенных аудиторией
- Как и когда рефакторить код
- Как включать рефакторинг в оценки
- Как рефакторить легаси код без тестов
- Маленькие шаги
День 2. Парное программирование, Юнит тестирование, TDD
Упражнение 0. Парное программирование
Упражнение 1. Вводим юнит тесты
Упражнение 2. Вводим TDD. Отличие юнит тестов от TDD
Упражнение 3. Рефакторинг тестов. Структура Arrange/Act/Assert. Именование. Структура.
Упражнение 4. Использование Mock объектов для работы с легаси кодом. Тесты на поведение/состояние
Обсуждение
Тесты на поведение и тесты состояние - что использовать?
Приемы из реальной жизни
Как и когда писать тесты
Как и когда фиксить баги
Как работать с легаси кодом и как гасить технический долг
Рабочий день девелопера
Отличия от других
Мы фокусируемся на конкретных понятных целях наших участников, поэтому все темы рассматриваются через вопросы практического применения.
Участники в рамках практики сами почуствуют специфику и смогут сделать самостоятельные выводы. А все устные обсуждения основаны не на книжных примерах, а на опыте и вопросах непосредственно участников тренинга. Мы обсудим именно Ваши проблемы и пожелания.
Ни одна практика не существует в вакууме, в отрыве от других практик и проектного контекста. Именно поэтому мы охватываем несколько практик, которые дополняют друг друга и дают мощный инструмент разработки.