Про ёжика в тумане, зазнайство, языки программирования и вериги

Dec 17, 2012 15:14

На одном местном форуме очередной гений жаловался на судьбу. Он сделал великолепную программу, а начальство требует, чтобы в ней могли разбираться другие люди. Не гениальные ( Read more... )

it, ru, qa, quality, fp, agile, psychology, se

Leave a comment

_windwalker_ December 17 2012, 21:22:18 UTC
на самом деле если поломать код до дебаггинга со статическими типами - то всё, пиздец, бабушка приехала. Т.к. по крайней мере в скале тот пиздец что выдаётся в байткод дебажить невозможно + какие-то косяки с debug classpath даже у юнит-тестов.

по крайней мере в случае исполнения юнит-тестов из IDE.

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

Reply

metaclass December 17 2012, 21:28:15 UTC
Подтверждаю, отлаживать функциональщину нереально.

Возможно, если бы мне кто дал этим заняться, я бы придумал способ выводить диаграммы потоков данных для отладки (вместо непригодных стек-трейсов и пошаговой отладки), но мне надо прикладной софт писать, а не мир улучшать :)

Reply

vit_r December 17 2012, 21:45:36 UTC
Насколько понимаю, это тестируется заглушками и сравнением записанных call sequence diagram с заданными. В телефонии всё просто, там CSD - часть стандарта.

Reply

vit_r December 17 2012, 21:50:37 UTC
Я уже много лет не заглядываю в дебаггер, обходясь функциональными тестами и автоматическим выводом диагностики. И всё плотно покрыто проверками в assert,

Правда, мне скорость работы пофиг и важна только правильность.

Reply

_windwalker_ December 17 2012, 22:04:09 UTC
ух, это прикольно. правда с функциональными тестами есть проблема - их взрывное количество при сложных взаимодействиях. или нет ?

Reply

vit_r December 17 2012, 22:19:36 UTC
Смотря на каком этапе проверять.

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

Потом, у меня на входных данных и инвариантах стоят assert. В результате, если одна часть системы ведёт себя неожиданным образом, другая сразу же фиксирует ошибку. (Или же правильное поведение, которое ошибочно было предсказано не так, каким должно быть).

Если по ошибке сразу не видно, в чём причина, то в этом месте вырезается заглушками подсистема или участок функциональности, и см. выше.

Reply

_windwalker_ December 17 2012, 22:52:40 UTC
ясно, всё по-уму.

Reply


Leave a comment

Up