TDD излишне для небольших проектов? - PullRequest
42 голосов
/ 23 февраля 2010

В последнее время я довольно много читал о TDD и тому подобном, и я пока не совсем продал его. Я делаю много небольших хобби-проектов (только я), и меня беспокоит, пытаюсь ли я сделать TDD излишне для такой вещи. Хотя я видел небольшие проекты с открытым исходным кодом с 3-мя разработчиками, которые делают TDD. (хотя я видел несколько проектов с одним человеком, которые также делают TDD)

Так что, всегда ли полезно использовать TDD или на каком пороге имеет смысл его использовать?

Ответы [ 16 ]

2 голосов
/ 26 июля 2011

По моему опыту, 90% случаев те, кто сомневается в преимуществах, не пробовали этого.

Попробуй скептически. Измерьте, что вы надеетесь получить от этого, до и после.

Я могу указать на меньшее время, потраченное / потраченное на исправление ошибок, обнаруженных в производстве. Я вижу / измеряю повышение производительности (сокращение времени выхода на рынок), улучшение качества кода (по различным показателям), более точное соответствие требованиям (т. Е. Меньшее количество переделок, поскольку требования не были ясны) и т. Д.

Я «чувствую» себя лучше в проектах, использующих TDD, но потом я «заражен тестами». Мораль разработчиков в проектах, использующих TDD, как правило, выше, как субъективное мнение.

Если вы не получите эти результаты, не используйте их. Если вас не интересуют эти результаты, чтобы измерить их, используйте TDD или нет, так что вы почувствуете себя лучше.

TDD имеет кривую обучения. Если вы не готовы приложить усилия, чтобы предпринять серьезные попытки, не беспокойтесь.

Небольшой проект - отличный способ серьезно попробовать его без большого риска.

2 голосов
/ 23 февраля 2010

Что ж, на самом деле не количество людей является решающим фактором для TDD (по крайней мере, это то, что выводит ваш вопрос), а скорее размер проекта.TDD заключается в том, что весь код, который вы разрабатываете, будет в значительной степени подвергнут модульному тестированию.Таким образом вы сэкономите много хлопот при рефакторинге позже.Конечно, это действительно просто необходимо, когда ваш проект имеет приличный размер.

1 голос
/ 10 декабря 2010

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

1 голос
/ 23 февраля 2010

Я бы сказал, что это полностью зависит от данного периода времени. Если у вас есть время, чтобы тратить почти вдвое больше времени, которое обычно требуется, то сделайте это. Но, на мой взгляд, скорость является в наши дни одним из важнейших факторов (для конкурирующих компаний).

1 голос
/ 23 февраля 2010

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

0 голосов
/ 26 декабря 2010

Я думаю, что TDD того стоит, независимо от размера (ДАЖЕ, если это один класс - поскольку написание тестов сначала может помочь вам придумать более разумный дизайн).

Я считаю, что в этом нет необходимости, когда вы создаете проект, в котором вы не уверены, чего хотите, и вряд ли вам небезразлична ремонтопригодность. Я обнаружил, что нет ЛЮБЫХ проектов, которые соответствуют этой категории на работе, но я обнаружил, что иногда я разрабатываю личные проекты, в которых это имеет место. В этих случаях я обычно изучаю новый фреймворк и понятия не имею, что я делаю с самого начала, поэтому мои тесты с большей вероятностью сломаются со временем по неправильным причинам, что снижает их ценность.

Однако я также признаю, что отказ от использования TDD обходится мне в ремонтопригодности - как только я знаю, что я делаю, я быстро возвращаюсь к красному / зеленому / рефактору.

...