Re[10]: Долгая компиляция на с++ - смерть для больших проектов?
От: _hum_ Беларусь  
Дата: 30.04.16 22:36
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>Здравствуйте, _hum_, Вы писали:


__>>ну вы же просто написали тесты, которые могут сказать, есть ли ошибка в написанном коде или нет (и то не всякая, ибо вы не все варианты можете покрыть). а как быть, если ошибка-таки обнаружилась — сработали ваши ассерты?

__>>как вы код править будете?

L>Эээ... путем нажатия на соответствующие клавиши на клавиатуре в редакторе кода, как же еще?

L>Я серьезно не понимаю, в чем вопрос.

а как найдете место, в который нужно поставить курсор, чтобы потом "нажать клавиши на клавиатуре в редакторе кода"?

L>>>Ты мне лучше скажи, зачем тут вообще отладчик может понадобиться?


__>>ну, например, в коде вы сделали описку — вместо resulted[i][j] = original[j][i] написали resulted[i][j] = original[i][j]Э, или у вас эксепш при вызове функции вылетает (вы неправильно рассчитали размерность транспонированной матрицы)


L>Соответствующий юнит-тест на это укажет:

L>
L>TEST(transpose, matrixDimensions)
L>{
L>    // это вообще можно сделать в цикле, чтобы проверить все возможные варианты.
L>    // но обычно не надо, т.к. правильность алгоритма можно индукцией
L>    Matrix transposed = transpose(getMatrix(1,10));
L>    ASSERT_EQ(matrix::dimension(10,1), transposed);
L>}
L>


во-первых, в вашем первоначальнмо варианте этого теста не было, а во-вторых, он покажет, что транспонирования не поисходит, но в каком месте кода ошибка — нет.

L>Если тест ломается, то это практически прямое указание, что именно и где нужно править.


если у вас тесты на каждые пару строк кода, то согласен (но это нереально).

__>>мне кажется, вы просто работаете на уровне, когда берете готовые блоки и начинаете их компоновать между собой. в этом случае, да, дебагер не очень нужен — обнаружили нестыковку — заменили блок и компоновку.


L>Когда кажется, нужно (и далее по тексту).


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

кстати, а что с эксепшенами? вот вылетает у вас он в куске кода — как вы тестируете?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.