Перечитываю тут на досуге "Рефакторинг" Фаулера.
Никак не могу понять (скорее, "принять") некоторые рефакторинги, напрямую связанные с ухудшением производительности.
Главный пример — 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();
}
Интересно ваше мнение по поводу того, действительно ли стоит жертвовать производительностью (и не кешировать вычисления в таких случаях в угоду более красивому коду) и положиться на профайлер? Честно говоря, у меня рука бы дрогнула такое написать, но я уже начинаю сомневаться
Спасибо!