why tdd doesn't work? (Кому что мешает, или почему tdd не...

44
Кому что мешает, или почему TDD не работает Артем Грошевой URL: www.acceptic.com Software programming services and Dedicated developers teams E-mail: [email protected] Tel.: +1 800 990 4370

Upload: dmitriy

Post on 19-Jul-2015

148 views

Category:

Technology


2 download

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