Pull to refresh

Comments 12

Хороший пример… Заслуженный автор разбирает культовый алгоритм.
Одна проблема — новичка это описание скорее оттолкнет, чем привлечет использовать TDD…
Понравилось. Хорошая разминка для мозгов. Вначале следил за ходом мысли автора, потом бросил. Когда читал фразы типа «Странно, что» или «очевидно, не является », мне было совсем не странно и не очевидно, и эти такие простые и знакомые слова казались в этой статье чужими и появлялось чувство, что автор это все понимает гораздо лучше, чем я. Неожиданностью было в конце, что код на языке Java.

Какой-то совершенно дикий способ хранения графа. Видимо, желание автор продемонстрировать TDD здесь перевесило все остальное: получился какой-то медленный, неюзабельный алгоритм с кучей ограничений.

Дело даже не в способе — любой способ имеет право на жизнь, если позволяет закодировать алгоритмы просто и естественно.

Проблема именно в том, что большая часть решений совершенно не вытекала из тестов. В том числе — и решений по способу хранения и представления. Т.е. автор продемонстрировал, как бы он пришел к какому-то решению, написал по дороге несколько каких-то тестов — но только тесты и решения зачастую выглядят как не связанные друг с другом вещи.
Согласен :) Очередной лёгкий способ нарисовать сову.

Я не мастер джавы, но уверен, что в последнем исходнике пропущена куча пробелов.


Подход к описанию тестовых случаев мне очень понравился. Он прекрасно накладывается на моё желание упрощать описание кейсов и максимально не повторяться. На этой неделе делал подобное, но там алгоритм работал со строками (разбирал адрес), и преобразование не потребовалось: грузи файл или массив, да тести в цикле. А сегодня я понял вдруг, что так же можно с любой структурой поступить!

Извините. Последний листинг поправили

для неповторений тестов есть DataProvider в nginx или Parameters в Junit

Delphi7 + DUnit :(

Спасибо за подсказку. Посмотрел — да, это именно то, чего я хочу, но в DUnit параметризованные тесты поддерживаются только с версии Delphi 2010.
Чтобы перенести приложение на свежую версию — нужны тесты и замена старых сторонних компонентов (их немного, но свежих версий для важной части из них нет). Тестов до меня не было от слова совсем. В приложении более сотни модулей, пронизанных клубком взаимозависимостей, сиречь нетестируемых.

Это песня, нет, это поэма!!! Сплошной праздник года на два, с учётом разработки нового функционала. И я эту песню пою и танцую. Реальное наслаждение!

опечатка: вместо "nginx" читать "TestNG"

Если TDD когда-нибудь победит, став доминирующей парадигмой, то на базе этой статьи, я уверен, возникнет предание о том, как великий Дейкстра разработал свой алгоритм. Он начал, как водится, с тривиальных тестов для вырожденных случаев, но в результате, чтобы пройти все тесты, ему пришлось придумать свой знаменитый алгоритм. Только историки интернета, тщательно изучившие архивы, будут знать, что оригинальным автором был Мартин.

Sign up to leave a comment.

Information

Website
piter.com
Registered
Founded
Employees
201–500 employees
Location
Россия