|
Про TDD
|
|||
---|---|---|---|
#18+
что-то задумался над этим подходом. книги/статьи читал. но как-то не проникся. может подскажете хорошее чтиво/статьи, где не хелловорд и не про бороздят космические океаны. почему пишу? чувствую, надо быть в тренде что есть в этом подходе что-то мне нужное. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 19:55 |
|
Про TDD
|
|||
---|---|---|---|
#18+
TDD это забавный зверек пригодный для расчетных задач. Но в большинстве случаев мы пишем что-то работающее с пользовательскими интерфейсами, а для этого чрезвычайно сложно создать автоматический тест. Поэтому и TDD распространения не получил. Но если у тебя задача типа взять один файл и превратить его в другой - то TDD становится чрезвычайно удобным. Можно даже утверждать что для любых конверторов TDD это наиболее естественный процесс разработки. Но для любых приложений с GUI это уже практически неприменимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 20:22 |
|
Про TDD
|
|||
---|---|---|---|
#18+
White OwlTDD это забавный зверек пригодный для расчетных задач. Но в большинстве случаев мы пишем что-то работающее с пользовательскими интерфейсами, а для этого чрезвычайно сложно создать автоматический тест. Поэтому и TDD распространения не получил. Но если у тебя задача типа взять один файл и превратить его в другой - то TDD становится чрезвычайно удобным. Можно даже утверждать что для любых конверторов TDD это наиболее естественный процесс разработки. Но для любых приложений с GUI это уже практически неприменимо. Ваш ответ скорее против, чем за TDD, как мне кажется. меня больше интересует, как этот TDD, работает в обычных бизнес-приложениях. там все уже известно - что и как. а бизнес логика - именно то что есть "бизнес-логика" - та часть, которую надо неизбежно говнокодить - как тут это TDD имеет место быть? часто пишут в интернетах: вот контроллер, вот репозиторий. но это как-то мимо все ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 20:28 |
|
Про TDD
|
|||
---|---|---|---|
#18+
kmawВаш ответ скорее против, чем за TDD, как мне кажется. меня больше интересует, как этот TDD, работает в обычных бизнес-приложениях. там все уже известно - что и как. а бизнес логика - именно то что есть "бизнес-логика" - та часть, которую надо неизбежно говнокодитьха-ха-ха. Во впервых, кому нужно? Бизнес покупает готовый продукт (1С хотя бы) и подтягивает свою бизнес-логику под нее. Разработки с нуля обычно начинаются там где бизнес-логикой и не пахнет. У них весь бизнес процесс на уровне "здесь играть, здесь не играть, здесь рыбу заворачивали". И когда такой бизнес решается на автоматизацию то жесткие рамки готовых решений не годятся и начинается своя разработка. Но под нее написать тесты практически нереально (смотри описание бизнес-логики). Ну и во вторых, бизнес-приложения это всегда в первую очередь GUI клиенты для офисного люда. А для GUI тесты делать сложно. У TDD расшифровка какая? Test Driven Development - уже из названия видно, что тесты стоят во главе всего. Если ты можешь написать автоматизированные тесты для всех частей своего приложения, то TDD будет хорошим выбором. А если с тестами напряг - то и опаньки. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 21:56 |
|
Про TDD
|
|||
---|---|---|---|
#18+
White OwlTDD это забавный зверек пригодный для расчетных задач. Но в большинстве случаев мы пишем что-то работающее с пользовательскими интерфейсами, а для этого чрезвычайно сложно создать автоматический тест. Поэтому и TDD распространения не получил. Но если у тебя задача типа взять один файл и превратить его в другой - то TDD становится чрезвычайно удобным. Можно даже утверждать что для любых конверторов TDD это наиболее естественный процесс разработки. Но для любых приложений с GUI это уже практически неприменимо. Я прошу прощения , но последние бестпрактисы гласят что мухи ( гуй ) отдельно , а котлеты ( бизнеслогика ) отдельно. При таком подходе нет проблем использовать TDD для тестировани бизнеслогики. А Гуй пусть оценивает комиссия по эстетике и морали, на качесто работы бизнеслогики он влиять не должен. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 23:19 |
|
Про TDD
|
|||
---|---|---|---|
#18+
ДохтаРгласят что мухи ( гуй ) отдельно , а котлеты ( бизнеслогика ) отдельно.Протестировали CRUD бизнес логики. Все ОК. В GUI кто-то повесил на кнопку Create обработчик Delete. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 23:25 |
|
Про TDD
|
|||
---|---|---|---|
#18+
ДохтаРЯ прошу прощения , но последние бестпрактисы гласят что мухи ( гуй ) отдельно , а котлеты ( бизнеслогика ) отдельно.это не бестпрактикс, это идеи теоретиков. "если текущая дата превышает ожидаемую дату оплаты, то строку поставки необходимо выделить красным цветом" - как тебе такой кейс? и таких кейсов - миллион, и все они - бизнес-логика в гуе. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 02:24 |
|
Про TDD
|
|||
---|---|---|---|
#18+
egorychДохтаРЯ прошу прощения , но последние бестпрактисы гласят что мухи ( гуй ) отдельно , а котлеты ( бизнеслогика ) отдельно.это не бестпрактикс, это идеи теоретиков. "если текущая дата превышает ожидаемую дату оплаты, то строку поставки необходимо выделить красным цветом" - как тебе такой кейс? и таких кейсов - миллион, и все они - бизнес-логика в гуе.Бизнес-логика в этом кейсе заканчивается на определении превышения текущей даты над датой поставки. Раскрашивание пользовательского интерфейса во все цвета радуги к этому никакого отношения не имеет. Ну и в каком месте находится проблема разделения бизнес-логики и гуя? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 09:37 |
|
Про TDD
|
|||
---|---|---|---|
#18+
sphinx_mvРаскрашивание пользовательского интерфейса во все цвета радуги к этому никакого отношения не имеет.да ладно, а что же это? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 10:50 |
|
Про TDD
|
|||
---|---|---|---|
#18+
egorychsphinx_mvРаскрашивание пользовательского интерфейса во все цвета радуги к этому никакого отношения не имеет.да ладно, а что же это? информирование ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 10:57 |
|
Про TDD
|
|||
---|---|---|---|
#18+
ДохтаРЯ прошу прощения , но последние бестпрактисы гласят что мухи ( гуй ) отдельно , а котлеты ( бизнеслогика ) отдельно. При таком подходе нет проблем использовать TDD для тестировани бизнеслогики. Очень правильное замечание, но проблема в том, что далеко не всегда "последние бестпрактики" применимы на практике, и далеко не всегда, даже если они применимы, они применяются. Да и GUI тестировать тоже надо, ибо порядка 70% ошибок именно в нём. Ну, половина уж точно. Я не против TDD, я за, только оно далеко не всегда выстреливает. Если вы делаете продукт -- там нужны тесты, и юнит, и функциональные, и производительности , и вообще всякие. Если вы делаете софт как сервис, там и тесты не всегда и вдруг будут, и возможно писать их не нужно вообще, из экономических соображений -- легче и быстрее ошибку исправить и выкатить новую версию, чем создавать тесты. Книгу я не подскажу, а автору посоветую не фанатствовать, попадёшь в компанию, где это кровь из носа нужно -- научишься быстро, это не rocket science, там ничего сложного нет. Не попадёшь -- ну и не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 11:01 |
|
Про TDD
|
|||
---|---|---|---|
#18+
TDD - это про модульное тестирование. Раскрашивание по условию - это функциональное. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 11:02 |
|
Про TDD
|
|||
---|---|---|---|
#18+
eNoseegorychпропущено... да ладно, а что же это? информированието есть, произошло бизнес-событие о котором программа явно должна уведомить бизнес-пользователя, и это не бизнес-логика? ну-ну, я и говорю - теоретики. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 11:27 |
|
Про TDD
|
|||
---|---|---|---|
#18+
ГхостикTDD - это про модульное тестирование. Раскрашивание по условию - это функциональное.вот с этим я согласен. Только получается, что весь проект мы не сможем написать по принципам TDD, что херит, на мой взгляд, всю идею. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 11:31 |
|
Про TDD
|
|||
---|---|---|---|
#18+
egorycheNoseпропущено... информированието есть, произошло бизнес-событие о котором программа явно должна уведомить бизнес-пользователя, и это не бизнес-логика? ну-ну, я и говорю - теоретики. система должна уведомить. а как программа отобразит это - уже дело вкуса. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 11:33 |
|
Про TDD
|
|||
---|---|---|---|
#18+
eNoseсистема должна уведомить. а как программа отобразит это - уже дело вкуса.то есть, тестировать уже не надо, так, что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 11:40 |
|
Про TDD
|
|||
---|---|---|---|
#18+
egorycheNoseсистема должна уведомить. а как программа отобразит это - уже дело вкуса.то есть, тестировать уже не надо, так, что ли? конечно надо. но это не бизнес-логика. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 11:43 |
|
Про TDD
|
|||
---|---|---|---|
#18+
eNoseegorychпропущено... то есть, тестировать уже не надо, так, что ли? конечно надо. но это не бизнес-логика.опять двадцать-пять. То есть, когда было написано "система должна уведомить" - это была бизнес-логика, а когда определены все ограничения дизайна, пользовательский интерфейс, технологии и прочая-прочая, и пишется конкретный код - вдруг перестало быть бизнес-логикой. Красиво, чё. Зато отделили бизнес-логику от UI, молодцом. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 11:48 |
|
Про TDD
|
|||
---|---|---|---|
#18+
egorychДохтаРЯ прошу прощения , но последние бестпрактисы гласят что мухи ( гуй ) отдельно , а котлеты ( бизнеслогика ) отдельно.это не бестпрактикс, это идеи теоретиков. "если текущая дата превышает ожидаемую дату оплаты, то строку поставки необходимо выделить красным цветом" - как тебе такой кейс? и таких кейсов - миллион, и все они - бизнес-логика в гуе. Сдесь не сказано когда. Это например может случиться при нажатии на клавишу "исполнить" - сработает бизнес логика и вернет в Гуй ошибку. по которой он (Гуй) может раскрасить поля или просто скажет боксом - Это уже информирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 12:46 |
|
Про TDD
|
|||
---|---|---|---|
#18+
YesSqlСдесь не сказано когда. Это например может случиться при нажатии на клавишу "исполнить" - сработает бизнес логика и вернет в Гуй ошибку. по которой он (Гуй) может раскрасить поля или просто скажет боксом - Это уже информирование.почему то вы считаете, что "информирование" - это какой то отдельный зверь. Информирование - это неотъемлемая часть бизнес-процесса, без которой этот бизнес-процесс не имеет смысла. И как оно может быть не бизнес-логикой, скажите мне пожалуйста? Конкретная реализация мессаджбокса, грида или другого какого чёрта-в-ступе-для-вывода-сообщений-пользователю, конечно, к бизнес-логике отношения не имеют, а вот его реакция на определённое событие - является. И вот что я не понимаю возвращаясь, всё же, к заявленной теме - как тут применить TDD, когда программируешь такие кейсы. А ведь именно здесь они и нужны больше всего. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 13:07 |
|
Про TDD
|
|||
---|---|---|---|
#18+
egorychГхостикTDD - это про модульное тестирование. Раскрашивание по условию - это функциональное. Раскрашиваение по условию вполне тестируется модульным тесто модели представления. вот с этим я согласен. Только получается, что весь проект мы не сможем написать по принципам TDD, что херит, на мой взгляд, всю идею. Это надо обосновать - почему тестирование только отдельных кусков херит всю идею. Например в электрический чайник я наливаю воду вручную, но дальше он кипятит чай самостоятельно. Если он облегчает мне часть работы почему бы его не использовать? Так и с тестами. Если я не трогаю UI я могу быть уверен, что не сломаю все в усмерть, если я трогаю, я могу перетестировть руками только UI. Если я сломаю что-то другое, я получу нформацию о том, что именно я сломал. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 13:24 |
|
Про TDD
|
|||
---|---|---|---|
#18+
egorychИ вот что я не понимаю возвращаясь, всё же, к заявленной теме - как тут применить TDD, когда программируешь такие кейсы. А ведь именно здесь они и нужны больше всего. абстрагировать UI - объекту отвечающему за бизнес логику подсовывать симуляцию пользовательского ввода, который в ответ на конкретный вопрос выдает заранее записанный ответ. Прочитайте про MVVM и как там работают с диалогами. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 13:28 |
|
Про TDD
|
|||
---|---|---|---|
#18+
egorychYesSqlСдесь не сказано когда. Это например может случиться при нажатии на клавишу "исполнить" - сработает бизнес логика и вернет в Гуй ошибку. по которой он (Гуй) может раскрасить поля или просто скажет боксом - Это уже информирование.почему то вы считаете, что "информирование" - это какой то отдельный зверь. Информирование - это неотъемлемая часть бизнес-процесса, без которой этот бизнес-процесс не имеет смысла. И как оно может быть не бизнес-логикой, скажите мне пожалуйста? Конкретная реализация мессаджбокса, грида или другого какого чёрта-в-ступе-для-вывода-сообщений-пользователю, конечно, к бизнес-логике отношения не имеют, а вот его реакция на определённое событие - является. И вот что я не понимаю возвращаясь, всё же, к заявленной теме - как тут применить TDD, когда программируешь такие кейсы. А ведь именно здесь они и нужны больше всего. Да, это часть бизнес логики. Я к тому что можно срезать достаточно тонкий слой Гуя который тестируется вручную. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 13:35 |
|
Про TDD
|
|||
---|---|---|---|
#18+
YesSqlЯ к тому что можно срезать достаточно тонкий слой Гуя который тестируется вручную.как то у меня получается наоборот. Достаточно тонкий слой вычислений уровня 2+2=4, и толстый-толстый слой гемотогена UI, потому что таких зависимостей одного от другого - до чёрта. И всё тестируется ручками. Куда тут всунуть TDD? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 13:47 |
|
|
start [/forum/topic.php?fid=16&tid=1339801]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
184ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 309ms |
0 / 0 |