Информация об изменениях

Сообщение Re[15]: Функции должны быть компактными от 26.04.2016 22:02

Изменено 26.04.2016 22:04 __kot2

Здравствуйте, IT, Вы писали:
IT>Здравствуйте, __kot2, Вы писали:
__>>а каким вы образом будете тестировать гигантский switch где сгруппировано всю кучками? будете писать отдельный тест для каждого значения case? для одного из класса? или все-таки для каждого класса таких значений?
IT>а каким вы образом будете тестировать гигантский цикл? будуте писать отдельный тест для каждой итерации?
тут, разумеется, понадобится два теста. на то, что метод вызывается нужное число и раз и корректность работы метода непосредственно

__>>тесты говнокода всегда пытаются описать что говнокод делает, когда тест нормального кода описывает что код должен делать

IT>Глубокая мысль. Если её упростить, то получится так: дважды два равно четыре, когда трижды три равно девять.
нет. просто когда понимаешь, что потом это еще и тестировать надо, то стараешься писать совсем по другому

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

IT>Ты опять про тесты? Давай может вернёмся к тому как ты сейчас лихо из 250 строк предложенного кода сделаешь 10?
я уже привел свое решение

public static void for_every_subexpression_do(this Expression expr, Func<Expression,bool> func)
{
    for_each(subexpr : expr.sub_expressions())
        {
          Visit(subexpr, func);
          func(subexpr);
        }
}

наверное, правильнее будет вставить
Visit(expr, func);

на самый верх, но это зависит так же от того, что мы понимаем под подвыражением

6 строчек кода. 7 если разделитесь для красоты добавить
Re[15]: Функции должны быть компактными
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, __kot2, Вы писали:
__>>а каким вы образом будете тестировать гигантский switch где сгруппировано всю кучками? будете писать отдельный тест для каждого значения case? для одного из класса? или все-таки для каждого класса таких значений?
IT>а каким вы образом будете тестировать гигантский цикл? будуте писать отдельный тест для каждой итерации?
тут, разумеется, понадобится два теста. на то, что метод вызывается нужное число и раз и корректность работы метода непосредственно

__>>тесты говнокода всегда пытаются описать что говнокод делает, когда тест нормального кода описывает что код должен делать

IT>Глубокая мысль. Если её упростить, то получится так: дважды два равно четыре, когда трижды три равно девять.
нет. просто когда понимаешь, что потом это еще и тестировать надо, то стараешься писать совсем по другому

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

IT>Ты опять про тесты? Давай может вернёмся к тому как ты сейчас лихо из 250 строк предложенного кода сделаешь 10?
я уже привел свое решение

public static void for_every_subexpression_do(this Expression expr, Func<Expression,bool> func)
{
    for_each(subexpr : expr.sub_expressions())
        {
          Visit(subexpr, func);
          func(subexpr);
        }
}

наверное, правильнее будет вставить
Visit(expr, func);

на самый верх, но это зависит так же от того, что мы понимаем под подвыражением

6 строчек кода. 7 если разделитесь для красоты добавить

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