why tdd doesn't work? (Кому что мешает, или почему tdd не...
TRANSCRIPT
Кому что мешает,
или почему TDD
не работает
Артем Грошевой
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Кто я?
● Занимаюсь разработкой ПО более 4-х лет (из них 3
года на .NET)
● Проработал во многих компаниях - от медицинских
проектов на waterfall до "полного" agile :)
● Стараюсь применять лучшие практики
программирования● Исполняю роль Team Lead на текущем проекте в
компании Acceptic
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
О чем я тут буду говорить?
● Что такое TDD и как оно работает
● Что мешает применять TDD
● Что с этим делать?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Почему я об этом говорю?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Что такое TDD?
● Пишем сначала тест потом код● Теста пишем ровно столько, сколько нужно для
сценария● Кода пишем ровно столько, сколько нужно для того,
чтобы тест прошел● При написании кода реализуем самое простое
решение● После того, как тест проходит, рефакторим код● Комитим
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
TDD Мантра
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Преимущества
● Предсказуемый способ разработки● Ускорение в разработке● Уверенность в коде● Самодокументируемый код● Дизайн приложения – лучше● Приложение уже точно поддается тестированию
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Внимание - шутка
«Правила TDD расслабляют настолько, что
подобный процесс разработки можно назвать
программированием для домохозяйки»
как бы не так...
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Теперь уже точно все знают, но мало кто использует
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Что мешает?
● Отрицание
● Неверное понимание
● Внешние ограничения
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Отрицание
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
1. Баловство все это
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Сколько стоит изменение?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Сколько стоит изменение?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Сколько стоит изменение?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Сколько стоит изменение?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Сколько стоит изменение?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Сколько стоит изменение?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Сколько стоит изменение?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Сколько стоит изменение?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Сколько стоит изменение?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
2. Лишнее время
Это круто, но я написал бы этот код быстрее без TDD
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Не забываем про отладку
Ее мало кто учитывает при планировании… но она есть, и на нее нужно время…
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Ручное тестирование
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Так может потратить это время на более полезное
занятие?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Если Вася пишет x строчек кода в день,
то с введением TDD он будет писать x/2 строчек кода?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Программисты не должны боятся писать код,
потому что это их основное занятие
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
3. Частый рефакторинг
● Мы часто рефакторим и все тесты падают
● Меняем одну строчку, куча тестов падает
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Рефакторинг без тестов - это больно
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
4. We’re fucking brilliant
Тесты не нужны, если ты:
● Гений● Любишь
заниматься отладкой
● Хакер в душе
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Неверное понимание
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
1. Тесты после кода
● Написали код – покрыли его тестами● Изменили код – исправили тесты
Ну и что в этом плохого?
● Тесты после кода сложнее писать● Мотивация писать «после» значительно
ниже
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
2. Пропуск стадии Red
Или логика уже есть, или.. тест ошибочный
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Внешние ограничения
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Менеджмент
... боится, что увеличится время разработки
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Команда
достаточно мощный источник влияния, весьма инертна
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Что делать?
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Дисциплина
● Не нужно менять правила● Нужно практиковать регулярно
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Тренировки
● Упражнения (TDD Kata)● Коучинг
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Желание
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Почитать
Книга Кент Бека
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
А также
● Роберт Мартин
«Чистый код. Создание, анализ, рефакторинг»
● Мартин Фаулер
«Рефакторинг. Улучшение существующего кода»
● Стив Макконнелл
«Совершенный код»
URL: www.acceptic.com
Software programming services andDedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Спасибо !!!
URL: www.acceptic.com
Software programming servicesand dedicated developers teams
E-mail: [email protected]
Tel.: +1 800 990 4370
Если хотите попрактиковать, подискутировать или просто потроллить:
E-mail: [email protected]: @guyfromukr