TDD - разработка через тестирование

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

TDD - разработка через тестирование

Сообщение jangle » 05.02.2013 (Вт) 19:48

Попробовал такой подход, очень понравилось. Вкратце сначала пишется тест, а затем уже код, который реализует этот тест. Движемся маленькими шажками. Единица итерации - класс, как можно меньше размером и проще. Сложный класс дробится на более простые. Тесты тоже получаются простыми.
Разработка похоже на складывание дома из кирпичиков. Только каждый кирпичик тщательно проверен и обладает стандартным интерфейсом. Т.е. идем от частного к более общему, снизу вверх. Большой плюс такого подхода, что после тебя остается не тонны говнокода, а структурированная объектная модель с готовым тестовым покрытием. А если надо что-то выкинуть и заменить, нет проблем, меняем один кирпич на другой и все! Я теперь все новые проекты буду делать через TDD

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: TDD - разработка через тестирование

Сообщение Хакер » 05.02.2013 (Вт) 20:25

—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: TDD - разработка через тестирование

Сообщение jangle » 05.02.2013 (Вт) 22:08

По ссылке обсуждение совсем другого вопроса

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: TDD - разработка через тестирование

Сообщение iGrok » 06.02.2013 (Ср) 1:53

jangle писал(а):По ссылке обсуждение совсем другого вопроса

А если внимательно прочитать топик?
label:
cli
jmp label

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: TDD - разработка через тестирование

Сообщение ger_kar » 06.02.2013 (Ср) 8:57

jangle писал(а):Попробовал такой подход, очень понравилось. Вкратце сначала пишется тест
Каким образом пишется? В произвольной форме в виде простого текста, или составляются некие диаграммы или таблицы?
jangle писал(а):Единица итерации - класс, как можно меньше размером и проще. Сложный класс дробится на более простые.
В моем понимании класс - это некоторая конкретная сущность и как ее дробить по каким критериям? Может приведешь примеры?
jangle писал(а): Т.е. идем от частного к более общему, снизу вверх.
Ну это напоминает строительство от фонаря, т.е. начал строить, а что получиться неизвестно. Как то все очень странно. Если общую идею разбить на составляющие и проработать каждую часть тогда еще как-то понятно. А вот наоборот :(
Кстати есть такая штука как Rational Rose. Интересно применяет или применял ее кто-либо их форумчан на практике? Или это фигня на которую и не стоит заморачиваться?
Бороться и искать, найти и перепрятать

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: TDD - разработка через тестирование

Сообщение jangle » 06.02.2013 (Ср) 9:30

ger_kar писал(а):Каким образом пишется? В произвольной форме в виде простого текста, или составляются некие диаграммы или таблицы?


Я кейс в виде текста пишу. С описанием того, какие данные подаются на вход, а какие должны быть на выходе. Этот текст является ТЗ для этой задачи.

В моем понимании класс - это некоторая конкретная сущность и как ее дробить по каким критериям? Может приведешь примеры?


Надо чтобы класс внутри был простым и понятным. Плохо когда в класс инкапсулируют туеву кучу говнокода, иногда чужого, непонятно как работающего. Такой класс надо переработать в несколько более простых, иначе когда все это, например, станет валится под новой версией ОС, там никто не разберется.

Ну это напоминает строительство от фонаря, т.е. начал строить, а что получиться неизвестно. Как то все очень странно. Если общую идею разбить на составляющие и проработать каждую часть тогда еще как-то понятно. А вот наоборот :(


Задачу разбивать надо в любом случае

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: TDD - разработка через тестирование

Сообщение ger_kar » 06.02.2013 (Ср) 9:52

Ну вообще для разбивания большой задачи на кусочки Rational Rose вполне себе удобное средство. Но разбить правильно, а не просто все раздробить, все равно задача нетривиальная (для меня по крайней мере).
Бороться и искать, найти и перепрятать

VmestoMobilnika
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 19.02.2014 (Ср) 12:10

Re: TDD - разработка через тестирование

Сообщение VmestoMobilnika » 19.02.2014 (Ср) 14:29

jangle писал(а):Попробовал такой подход, очень понравилось. Вкратце сначала пишется тест, а затем уже код, который реализует этот тест. Движемся маленькими шажками. Единица итерации - класс, как можно меньше размером и проще. Сложный класс дробится на более простые. Тесты тоже получаются простыми.
Разработка похоже на складывание дома из кирпичиков. Только каждый кирпичик тщательно проверен и обладает стандартным интерфейсом. Т.е. идем от частного к более общему, снизу вверх. Большой плюс такого подхода, что после тебя остается не тонны говнокода, а структурированная объектная модель с готовым тестовым покрытием. А если надо что-то выкинуть и заменить, нет проблем, меняем один кирпич на другой и все! Я теперь все новые проекты буду делать через TDD


Все смешалось в доме Облонских. TDD не имеет прямого отношения ни к классам, ни к методу "снизу вверх", ни тем более не избавляет от говнокода. Снизу-вверх - это плохо даже с TDD. Сверху-вниз - почти всегда лучше, а уж вместе с TDD вообще прекрасно. Эти две технологии не только не конфликтуют, но прекрасно друг в друга интегрируются.

У меня есть сильное подозрение, что Вы не различаете понятия разработки через тестирование и юнит-тестирования.

Я кейс в виде текста пишу. С описанием того, какие данные подаются на вход, а какие должны быть на выходе. Этот текст является ТЗ для этой задачи.


Это тем более не TDD. И даже не юнит-тестирование. Это просто спецификация. Если она проверяется автоматически, то получается контрактное программирование. Но я сомневаюсь, что Вы подразумевали его, судя по "ТЗ в виде текста".


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 18

    TopList