Экстремальное программирование

GD

Guest
Автор оригинала: varan
1) Написание заведомо непроизводительного кода + ю-тесты
2) Анализ производительности
3) Переписывание заново всего это кода + переписывание ю-тестов.
1) нужно быть весьма "гениальным", чтобы писать "заведомо непроизводительный код"
2) вобщем то в хр на это выделена концепция, называется рефакторинг

3) ну...ежели пишешь для "тренировки" - хоть всю жизь с нуля переписывай...
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Например, если писать систему статистики посещаемости, юнит тесты отдыхают, так как там без производительности делать нечего.
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Ладно, попробую тоже вступить в секту XP
 

GD

Guest
Автор оригинала: varan
Например, если писать систему статистики посещаемости, юнит тесты отдыхают, так как там без производительности делать нечего.
в ХР предполагается следующий подход:

1) выяснаяется список решаемый в предстоящей итерации задач
2) написание юнит тестов, которые позволят определить правильность работы скриптов
3) рефакторинг задач с прошлой итерации

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

можно поставить вопрос по другому: когда ты получаешь ТЗ, у тебя сразу и досканально точно отсеиваются медленные алгоримы?
 

Crazy

Developer
Автор оригинала: Dim-Dim
юнит тест говорит passed, если класс возвращает ожидаемое значение.
Не надо путать кислое с красным. Тест возвращает "passed", если выполнены условия тестирования. Одним из условий вполне может быть соблюдение временных ограничений.
 

Crazy

Developer
Автор оригинала: GD
можно поставить вопрос по другому: когда ты получаешь ТЗ, у тебя сразу и досканально точно отсеиваются медленные алгоримы?
А где ты видел ТЗ в XP? :)
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
мне сложно представить, программиста, задумывающегося об концепциях постановки рабочего процесса, который абсолютно не представляет поведение/производительность языка, на котором он пишет...
Погоди, ты хочешь сказать, что у человека, который представляет поведение/производительность языка, не может быть проблем с поведение/производительностью проекта?
 

Dim-Dim

looking...
Одним из условий вполне может быть соблюдение временных ограничений.
Ты имееш ввиду юнит тест?
Обычная схема тестирования в аля JUnit - даем не вход теста параметр с известным результатом, на выходе сравниваем.
Я не спорю можно тестировать и временные параметры (производительность), но ИМХО - это не совсем задача юнит тестов.
 

GD

Guest
Автор оригинала: Crazy
А где ты видел ТЗ в XP? :)
ну не ТЗ...
имел ввиду вообще задание, даже не в рамках ХР

...приходит (к примеру) к тебе босс и говорит, Толян...а забубень как такую шнягу...
 

Crazy

Developer
Автор оригинала: Dim-Dim
Ты имееш ввиду юнит тест?
Да.

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

Если же у тебя в UserStory четко сказано: глюкало должно отозваться через 100ms -- как, просто забьешь?

Стресс-тесты обычно не включают с юнит-тесты по другой причине: юнит тесты осмысленно при условии, что их гоняют КАЖДЫЙ раз после изменений. А стресс-тесты в массе своей занимают десятки минут или даже часов, соответственно, при каждом изменении никтот их пускать не станет.
 

GD

Guest
Автор оригинала: varan
Погоди, ты хочешь сказать, что у человека, который представляет поведение/производительность языка, не может быть проблем с поведение/производительностью проекта?
при такой постановке вопроса в рамках ХР никогда не говорится о проекте, есть user story
как я понимаю "маленькие задачки", которые реализуются и рефакторяца...
 

Crazy

Developer
Автор оригинала: GD
...приходит (к примеру) к тебе босс и говорит, Толян...а забубень как такую шнягу...
...чтобы она регулировала кардиостимулятор. Первый вопрос, который будет задан: а какие временные ограничения?
 

Crazy

Developer
Автор оригинала: GD
при такой постановке вопроса в рамках ХР никогда не говорится о проекте
Признаться, впервые встречаю такую жесткую трактовку. Ты не слишком все упрощаешь? :)
 

GD

Guest
Автор оригинала: Crazy
Признаться, впервые встречаю такую жесткую трактовку. Ты не слишком все упрощаешь? :)
возможно, но нахожусь на стадии понимания/осознания...
так что на жесткость абсолютно не претендую...
 

Crazy

Developer
Автор оригинала: Dim-Dim
Буду гонять, но не в юнит тестах.
Why? Тебе дали четкий критерий осмысленности твоего кода. Вот ты целый день над кодом работаешь, юнит-тесты гоняешь, а вечером запускашь комплексный тест и видишь, что 8 рабочих часов вся деятельность была эквивалента чесанию яиц, поскольку тест на порядок не уложился во временные ограничения?

А зачем тогда вообще юнит-тесты?
 

Dim-Dim

looking...
если тест производительности занимает порядка часа, то смысл его гонять каждые 5 минут?
 

Crazy

Developer
Dim-Dim, ты внимательно читал мое сообщение, написанное в 17:38? :)
 
Сверху