Replace temp with query
От: Аноним  
Дата: 06.03.07 10:50
Оценка:
Перечитываю тут на досуге "Рефакторинг" Фаулера.
Никак не могу понять (скорее, "принять") некоторые рефакторинги, напрямую связанные с ухудшением производительности.

Главный пример — subj.
Автор предлагает следующий фрагемент кода

double C::f()
{
    double tmp = a_ * b_;
    if (tmp > 10)
        return tmp * 0.5;
    else
        return tmp;
}


изменить на такой:

double C::ab()
{
    return a_ * b_;
}

double C::f()
{
    if (ab() > 10)
        return ab() * 0.5;
    else
        return ab();
}


Интересно ваше мнение по поводу того, действительно ли стоит жертвовать производительностью (и не кешировать вычисления в таких случаях в угоду более красивому коду) и положиться на профайлер? Честно говоря, у меня рука бы дрогнула такое написать, но я уже начинаю сомневаться

Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.