Re[7]: Долгая компиляция на с++ - смерть для больших проектов?
От: landerhigh Пират  
Дата: 29.04.16 11:02
Оценка:
Здравствуйте, _hum_, Вы писали:

__>извините, но вы здесь описали вариант, когда либо готовый код правится, либо к готовому коду добавляется еще один готовый функциональный блок, и проверяется их совместимость. я нигде не увидел собственного написания.


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

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


Вот сходил ты в курилку и придумал, что назовешь свою функцию
    Matrix transpose(const Matrix& original);


Налил кофе и написал следующие три теста
    TEST(transposeMatrix, transposeNegative)
    {
        // this is more a border case test
        ASSERT_TRUE(transpose(emptyMatrix).empty());   // Also checks that we don't crash if matrix is empty
    }

    TEST(transposeMatrix, transposePositiveSymmetrical)
    {
        Matrix symmetricalMatrix = ...; // Initialize
        Matrix expected = ...; // Manually transposed matrix
        ASSERT_EQ(expected, transpose(symmetricalMatrix));
        ASSERT_EQ(symmetricalMatrix, transpose(transpose(symmetricalMatrix)));
    }

    TEST(transposeMatrix, transposePositiveAsymmetrical)
    {
        Matrix asymmetricalMatrix = ...; // Initialize
        Matrix expected = ...; // Manually transposed matrix
        ASSERT_EQ(expected, transpose(asymmetricalMatrix ));
        ASSERT_EQ(asymmetricalMatrix , transpose(transpose(asymmetricalMatrix )));
    }


Потом написал собственно код транспонирования.

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


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