Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5 6   вперед  Ctrl      все
 Про TDD  [new]
kmaw
Member [заблокирован]

Откуда: бобруйск
Сообщений: 24786
что-то задумался над этим подходом. книги/статьи читал. но как-то не проникся. может подскажете хорошее чтиво/статьи, где не хелловорд и не про бороздят космические океаны. почему пишу? чувствую, надо быть в тренде что есть в этом подходе что-то мне нужное.
9 июл 15, 19:55    [17874300]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
White Owl
Member

Откуда:
Сообщений: 12349
TDD это забавный зверек пригодный для расчетных задач. Но в большинстве случаев мы пишем что-то работающее с пользовательскими интерфейсами, а для этого чрезвычайно сложно создать автоматический тест. Поэтому и TDD распространения не получил.
Но если у тебя задача типа взять один файл и превратить его в другой - то TDD становится чрезвычайно удобным. Можно даже утверждать что для любых конверторов TDD это наиболее естественный процесс разработки.
Но для любых приложений с GUI это уже практически неприменимо.
9 июл 15, 20:22    [17874353]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
kmaw
Member [заблокирован]

Откуда: бобруйск
Сообщений: 24786
White Owl
TDD это забавный зверек пригодный для расчетных задач. Но в большинстве случаев мы пишем что-то работающее с пользовательскими интерфейсами, а для этого чрезвычайно сложно создать автоматический тест. Поэтому и TDD распространения не получил.
Но если у тебя задача типа взять один файл и превратить его в другой - то TDD становится чрезвычайно удобным. Можно даже утверждать что для любых конверторов TDD это наиболее естественный процесс разработки.
Но для любых приложений с GUI это уже практически неприменимо.


Ваш ответ скорее против, чем за TDD, как мне кажется. меня больше интересует, как этот TDD, работает в обычных бизнес-приложениях. там все уже известно - что и как. а бизнес логика - именно то что есть "бизнес-логика" - та часть, которую надо неизбежно говнокодить - как тут это TDD имеет место быть? часто пишут в интернетах: вот контроллер, вот репозиторий. но это как-то мимо все
9 июл 15, 20:28    [17874371]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
White Owl
Member

Откуда:
Сообщений: 12349
kmaw
Ваш ответ скорее против, чем за TDD, как мне кажется. меня больше интересует, как этот TDD, работает в обычных бизнес-приложениях. там все уже известно - что и как. а бизнес логика - именно то что есть "бизнес-логика" - та часть, которую надо неизбежно говнокодить
ха-ха-ха.
Во впервых, кому нужно? Бизнес покупает готовый продукт (1С хотя бы) и подтягивает свою бизнес-логику под нее.
Разработки с нуля обычно начинаются там где бизнес-логикой и не пахнет. У них весь бизнес процесс на уровне "здесь играть, здесь не играть, здесь рыбу заворачивали". И когда такой бизнес решается на автоматизацию то жесткие рамки готовых решений не годятся и начинается своя разработка. Но под нее написать тесты практически нереально (смотри описание бизнес-логики).
Ну и во вторых, бизнес-приложения это всегда в первую очередь GUI клиенты для офисного люда. А для GUI тесты делать сложно.

У TDD расшифровка какая? Test Driven Development - уже из названия видно, что тесты стоят во главе всего. Если ты можешь написать автоматизированные тесты для всех частей своего приложения, то TDD будет хорошим выбором. А если с тестами напряг - то и опаньки.
9 июл 15, 21:56    [17874577]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
ДохтаР
Member [заблокирован]

Откуда: Новоукраинск
Сообщений: 16864
White Owl
TDD это забавный зверек пригодный для расчетных задач. Но в большинстве случаев мы пишем что-то работающее с пользовательскими интерфейсами, а для этого чрезвычайно сложно создать автоматический тест. Поэтому и TDD распространения не получил.
Но если у тебя задача типа взять один файл и превратить его в другой - то TDD становится чрезвычайно удобным. Можно даже утверждать что для любых конверторов TDD это наиболее естественный процесс разработки.
Но для любых приложений с GUI это уже практически неприменимо.


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

При таком подходе нет проблем использовать TDD для тестировани бизнеслогики.
А Гуй пусть оценивает комиссия по эстетике и морали, на качесто
работы бизнеслогики он влиять не должен.
9 июл 15, 23:19    [17874774]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 6856
ДохтаР
гласят что мухи ( гуй ) отдельно , а котлеты ( бизнеслогика ) отдельно.
Протестировали CRUD бизнес логики. Все ОК. В GUI кто-то повесил на кнопку Create обработчик Delete.
9 июл 15, 23:25    [17874787]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
egorych
Member

Откуда: и зачем;
Сообщений: 4742
ДохтаР
Я прошу прощения , но последние бестпрактисы
гласят что мухи ( гуй ) отдельно , а котлеты ( бизнеслогика ) отдельно.
это не бестпрактикс, это идеи теоретиков.
"если текущая дата превышает ожидаемую дату оплаты, то строку поставки необходимо выделить красным цветом" - как тебе такой кейс? и таких кейсов - миллион, и все они - бизнес-логика в гуе.
10 июл 15, 02:24    [17875021]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
scf
Member

Откуда:
Сообщений: 1477
https://www.sql.ru/forum/1136882/pomogite-tankistu-s-tdd
10 июл 15, 09:30    [17875306]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
egorych
ДохтаР
Я прошу прощения , но последние бестпрактисы
гласят что мухи ( гуй ) отдельно , а котлеты ( бизнеслогика ) отдельно.
это не бестпрактикс, это идеи теоретиков.
"если текущая дата превышает ожидаемую дату оплаты, то строку поставки необходимо выделить красным цветом" - как тебе такой кейс? и таких кейсов - миллион, и все они - бизнес-логика в гуе.
Бизнес-логика в этом кейсе заканчивается на определении превышения текущей даты над датой поставки.
Раскрашивание пользовательского интерфейса во все цвета радуги к этому никакого отношения не имеет.
Ну и в каком месте находится проблема разделения бизнес-логики и гуя?
10 июл 15, 09:37    [17875337]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
egorych
Member

Откуда: и зачем;
Сообщений: 4742
sphinx_mv
Раскрашивание пользовательского интерфейса во все цвета радуги к этому никакого отношения не имеет.
да ладно, а что же это?
10 июл 15, 10:50    [17875625]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
eNose
Member

Откуда:
Сообщений: 183398
egorych
sphinx_mv
Раскрашивание пользовательского интерфейса во все цвета радуги к этому никакого отношения не имеет.
да ладно, а что же это?
информирование
10 июл 15, 10:57    [17875677]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34417
ДохтаР
Я прошу прощения , но последние бестпрактисы
гласят что мухи ( гуй ) отдельно , а котлеты ( бизнеслогика ) отдельно.

При таком подходе нет проблем использовать TDD для тестировани бизнеслогики.


Очень правильное замечание, но проблема в том, что далеко не всегда "последние бестпрактики" применимы на практике, и
далеко не всегда, даже если они применимы, они применяются.
Да и GUI тестировать тоже надо, ибо порядка 70% ошибок именно в нём. Ну, половина уж точно.

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

Книгу я не подскажу, а автору посоветую не фанатствовать, попадёшь в компанию, где это кровь из носа нужно -- научишься быстро, это не rocket science, там ничего сложного нет. Не попадёшь -- ну и не надо.
10 июл 15, 11:01    [17875694]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
Гхостик
Guest
TDD - это про модульное тестирование. Раскрашивание по условию - это функциональное.
10 июл 15, 11:02    [17875702]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
egorych
Member

Откуда: и зачем;
Сообщений: 4742
eNose
egorych
пропущено...
да ладно, а что же это?
информирование
то есть, произошло бизнес-событие о котором программа явно должна уведомить бизнес-пользователя, и это не бизнес-логика? ну-ну, я и говорю - теоретики.
10 июл 15, 11:27    [17875835]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
egorych
Member

Откуда: и зачем;
Сообщений: 4742
Гхостик
TDD - это про модульное тестирование. Раскрашивание по условию - это функциональное.
вот с этим я согласен. Только получается, что весь проект мы не сможем написать по принципам TDD, что херит, на мой взгляд, всю идею.
10 июл 15, 11:31    [17875855]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
eNose
Member

Откуда:
Сообщений: 183398
egorych
eNose
пропущено...
информирование
то есть, произошло бизнес-событие о котором программа явно должна уведомить бизнес-пользователя, и это не бизнес-логика? ну-ну, я и говорю - теоретики.
система должна уведомить.
а как программа отобразит это - уже дело вкуса.
10 июл 15, 11:33    [17875874]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
egorych
Member

Откуда: и зачем;
Сообщений: 4742
eNose
система должна уведомить.
а как программа отобразит это - уже дело вкуса.
то есть, тестировать уже не надо, так, что ли?
10 июл 15, 11:40    [17875909]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
eNose
Member

Откуда:
Сообщений: 183398
egorych
eNose
система должна уведомить.
а как программа отобразит это - уже дело вкуса.
то есть, тестировать уже не надо, так, что ли?
конечно надо.
но это не бизнес-логика.
10 июл 15, 11:43    [17875932]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
egorych
Member

Откуда: и зачем;
Сообщений: 4742
eNose
egorych
пропущено...
то есть, тестировать уже не надо, так, что ли?
конечно надо.
но это не бизнес-логика.
опять двадцать-пять. То есть, когда было написано "система должна уведомить" - это была бизнес-логика, а когда определены все ограничения дизайна, пользовательский интерфейс, технологии и прочая-прочая, и пишется конкретный код - вдруг перестало быть бизнес-логикой. Красиво, чё. Зато отделили бизнес-логику от UI, молодцом.
10 июл 15, 11:48    [17875956]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
YesSql
Guest
egorych
ДохтаР
Я прошу прощения , но последние бестпрактисы
гласят что мухи ( гуй ) отдельно , а котлеты ( бизнеслогика ) отдельно.
это не бестпрактикс, это идеи теоретиков.
"если текущая дата превышает ожидаемую дату оплаты, то строку поставки необходимо выделить красным цветом" - как тебе такой кейс? и таких кейсов - миллион, и все они - бизнес-логика в гуе.

Сдесь не сказано когда. Это например может случиться при нажатии на клавишу "исполнить" - сработает бизнес логика и вернет в Гуй ошибку. по которой он (Гуй) может раскрасить поля или просто скажет боксом - Это уже информирование.
10 июл 15, 12:46    [17876292]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
egorych
Member

Откуда: и зачем;
Сообщений: 4742
YesSql
Сдесь не сказано когда. Это например может случиться при нажатии на клавишу "исполнить" - сработает бизнес логика и вернет в Гуй ошибку. по которой он (Гуй) может раскрасить поля или просто скажет боксом - Это уже информирование.
почему то вы считаете, что "информирование" - это какой то отдельный зверь. Информирование - это неотъемлемая часть бизнес-процесса, без которой этот бизнес-процесс не имеет смысла. И как оно может быть не бизнес-логикой, скажите мне пожалуйста?
Конкретная реализация мессаджбокса, грида или другого какого чёрта-в-ступе-для-вывода-сообщений-пользователю, конечно, к бизнес-логике отношения не имеют, а вот его реакция на определённое событие - является.

И вот что я не понимаю возвращаясь, всё же, к заявленной теме - как тут применить TDD, когда программируешь такие кейсы. А ведь именно здесь они и нужны больше всего.
10 июл 15, 13:07    [17876403]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
F#
Guest
egorych
Гхостик
TDD - это про модульное тестирование. Раскрашивание по условию - это функциональное.



Раскрашиваение по условию вполне тестируется модульным тесто модели представления.

вот с этим я согласен. Только получается, что весь проект мы не сможем написать по принципам TDD, что херит, на мой взгляд, всю идею.


Это надо обосновать - почему тестирование только отдельных кусков херит всю идею.

Например в электрический чайник я наливаю воду вручную, но дальше он кипятит чай самостоятельно. Если он облегчает мне часть работы почему бы его не использовать? Так и с тестами. Если я не трогаю UI я могу быть уверен, что не сломаю все в усмерть, если я трогаю, я могу перетестировть руками только UI. Если я сломаю что-то другое, я получу нформацию о том, что именно я сломал.
10 июл 15, 13:24    [17876513]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
F#
Guest
egorych
И вот что я не понимаю возвращаясь, всё же, к заявленной теме - как тут применить TDD, когда программируешь такие кейсы. А ведь именно здесь они и нужны больше всего.


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

Прочитайте про MVVM и как там работают с диалогами.
10 июл 15, 13:28    [17876541]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
YesSql
Guest
egorych
YesSql
Сдесь не сказано когда. Это например может случиться при нажатии на клавишу "исполнить" - сработает бизнес логика и вернет в Гуй ошибку. по которой он (Гуй) может раскрасить поля или просто скажет боксом - Это уже информирование.
почему то вы считаете, что "информирование" - это какой то отдельный зверь. Информирование - это неотъемлемая часть бизнес-процесса, без которой этот бизнес-процесс не имеет смысла. И как оно может быть не бизнес-логикой, скажите мне пожалуйста?
Конкретная реализация мессаджбокса, грида или другого какого чёрта-в-ступе-для-вывода-сообщений-пользователю, конечно, к бизнес-логике отношения не имеют, а вот его реакция на определённое событие - является.

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

Да, это часть бизнес логики. Я к тому что можно срезать достаточно тонкий слой Гуя который тестируется вручную.
10 июл 15, 13:35    [17876586]     Ответить | Цитировать Сообщить модератору
 Re: Про TDD  [new]
egorych
Member

Откуда: и зачем;
Сообщений: 4742
YesSql
Я к тому что можно срезать достаточно тонкий слой Гуя который тестируется вручную.
как то у меня получается наоборот. Достаточно тонкий слой вычислений уровня 2+2=4, и толстый-толстый слой гемотогена UI, потому что таких зависимостей одного от другого - до чёрта. И всё тестируется ручками. Куда тут всунуть TDD?
10 июл 15, 13:47    [17876673]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6   вперед  Ctrl      все
Все форумы / Программирование Ответить