Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Набить руку TDD (https://javascript.ru/forum/offtopic/50187-nabit-ruku-tdd.html)

melky 16.09.2014 06:51

Набить руку TDD
 
хай всем. обращаюсь к публике за мелкими идеями проектов (супер мелкими), где можно набить руку к подходу Test Driven Development. Т.е. какая-то мелкая задача с техническим описанием, что можно и чего нельзя. Так то оно всё понятно, но когда садишься за реальную задачу, то теряешься как-то...

Пока вот что нашел:
String Calculator

буду рад, если дополнительно ещё что-нибудь посоветуете :)

kobezzza 16.09.2014 10:32

Забей, это утопия. Никто нигде и некогда не использует TDD, т.к. это квинтэссенция контпродуктивности, а те кто говорит, что использует просто врёт, чтобы повыпендриваться :)

Я бы отнёс TDD к 100% покрытию кода, которое также невозможно в реальной жизни.
Тесты писать нужно, но TDD это перебор :)

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

l-liava-l 16.09.2014 10:34

console.log :cray:

Тесты писать жуть как лень, хотя одно время заморачивался

nerv_ 16.09.2014 10:39

Привет!

<label>I'm agree
    <input type="checkbox"/>
</label>
<div style="display: none;">Lisense</div>

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

Gozar 16.09.2014 16:21

Кстати, чем концепция TDD отличается от обычного программирования?

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

melky 16.09.2014 16:39

Цитата:

Сообщение от kobezzza (Сообщение 330761)
Забей, это утопия. Никто нигде и некогда не использует TDD, т.к. это квинтэссенция контпродуктивности, а те кто говорит, что использует просто врёт, чтобы повыпендриваться :)

Я бы отнёс TDD к 100% покрытию кода, которое также невозможно в реальной жизни.
Тесты писать нужно, но TDD это перебор :)

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

блина, я уже думал, кончится мучение от проектирования и забывчивости)

то же самое относится и к BDD, полагаю?

Цитата:

Сообщение от Gozar (Сообщение 330875)
Кстати, чем концепция TDD отличается от обычного программирования?
.

мне просто надоело тратить время на сидение в отладчике и "клик-клик" тестинг и я хотел бы этот процесс ускорить


Цитата:

Сообщение от nerv_ (Сообщение 330772)
Привет!

<label>I'm agree
    <input type="checkbox"/>
</label>
<div style="display: none;">Lisense</div>

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

благодарю :)

Gozar 16.09.2014 16:57

Цитата:

Сообщение от melky
надоело тратить время на сидение в отладчике и "клик-клик" тестинг и я хотел бы этот процесс ускорить

Долго сидишь? Ню, ню. А то у меня бывает день программа работает, а потом бабах и я узнаю об этом мире что-то новое. Эмулирование теста может занять 1 день :) Я называю это полубоевой сервер. Всплывающие баги просто невозможно предсказать, если не имеешь соответсвующих знаний, которых не может быть при первой встрече с новым багом.

А еще ошибка чаще всего не логируется, т.к. неизвестная :D

Мне думается, что ты добъешся каких-то результатов, вот только мне интересно каких? :D

melky 16.09.2014 17:05

Цитата:

Сообщение от Gozar
Мне думается, что ты добъешся каких-то результатов, вот только мне интересно каких?

пока что до упорной практики не дошло, но первые вздохи есть
Цитата:

Сообщение от Gozar
А еще ошибка чаще всего не логируется, т.к. неизвестная

они все такие ... сначала

Gozar 16.09.2014 17:09

Цитата:

Сообщение от melky
они все такие ... сначала

Я про логирование. Например браузер падает и ты не знаешь в какой момент, как отлогировать ошибку? Единственный способ, который я знаю - писать в файл. Допустим ты пишешь в файл и написал уже 5 Гб логов :) Главное писать в мелкие файлы, а не в один, тогда можно посмотреть последний, а не пытаться открыть 5 Гб файл. :)

Или допустим процесс идет 1 день и ты не знаешь, закончился он или зациклен. В программе возможно нет ошибки, ошибка в сканируемом объекте, а может и нет. Что по этому поводу говорит TDD?

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

WorM32 16.09.2014 17:22

Цитата:

Сообщение от melky (Сообщение 330879)
мне просто надоело тратить время на сидение в отладчике и "клик-клик" тестинг и я хотел бы этот процесс ускорить

Так пиши тесты на взаимодействие с GUI. Можно использовать тот же Jasmine или любой другой фреймворк для тестов.

Для автоматизации удобно юзать Karma и PhanthomJS. Тесты запускаются во время отправки коммита и отправка фейлится, если какой либо из тестов провалился.


Часовой пояс GMT +3, время: 09:05.