kms писал(а) 19. Февраля 2008 :: 01:33:Ну, например, замена временных переменных вызовом функции.
Понятней - возможно, эффективнее - точно нет.
[...]
Впрочем, это опять тема из тех, которые лучше обсуждать под пиво с гренками в каком-нидь уютном кабачке.
Ибо с какой стороны посмотришь - там и правда.
Про ортогональные интерфейсы не скажу, ибо не в курсе что это.
А вот про Replace Temp with Query - я тебе ща заряжу ту сторону, с которой правда Фаулера.
Зачем нужно проводить рефакторинг? Есть два варианта.
1. Устранять плохой запах
2. Готовить код к изменениям.
Если по первому варианту все интуитивно понятно (или не понятно, тут уж кому как с носом повезло), то со вторым - интереснее. Ибо в зависимости от сути планируемых изменений направление рефакторинга может меняться на прямо противоположное.
Так вот: замена временных переменных вызовом функции сама по себе не имеет смысла. Ибо действительно практически всегда снижает эффективность и иногда - читаемость. Однако если мы хотим выполнить Extract method, то без замены переменных функциями практически не обойтись.