Суть этого приема состоит в том, чтобы заменить один алгоритм на другой, который содержит меньше повторяемого кода.
Сразу перейдем к примеру.
Допустим, у нас есть следующая функция, которая ищет в массиве нужных людей, и, если находит, возвращает имя человека, а если не находит – возвращает пустую строку:
<?
…
function findPerson($people) {
foreach ($people as $person) {
if ($person == 'Alex') {
return 'Alex';
}
if ($person == 'Michael') {
return 'Michael';
}
if ($person == 'Sergey') {
return 'Sergey';
}
}
return '';
}
…
?>
Читать далее »
Сен 25, 2008 | Автор :
Novice | Нет комментариев
Этой статьей я начинаю рассматривать различные приемы рефакторинга. Сегодня рассмотрим то, как правильно обращаться с переменными, а именно: как избавиться от временных переменных.
Рассмотрим следующую ситуацию: у нас есть временная переменная, которая принимает больше чем одно значение (значение присваивается ей не однократно). При этом допустим, что эта переменная не имеет отношения к циклу:
<?
$temp = 2 * ($height + $width);
echo $temp;
$temp = $height * $width;
echo $temp;
?>
Читать далее »
Сен 21, 2008 | Автор :
Novice | Нет комментариев
Рефакторинг зачастую влияет на производительность. Чтобы сделать программный код или саму программу удобной для понимания, мы иногда вынуждены делать такие изменения, которые заставят работать программу медленнее, чем раньше.
Это важная проблема. И есть множество профессионалов, которые предпочитают писать более чистый и расширяемый код в ущерб его производительности, или надеясь на высокую производительность аппаратной части (железа). Рефакторинг, конечно, уменьшает производительности программы, но при этом делает программный код более податливым к дальнейшей оптимизации. Секрет быстрой программы заключается в том, что сначала ее код нужно сделать как можно более настраиваемым, а затем провести ее настройку в требуемой степени.
Читать далее »
Сен 17, 2008 | Автор :
Novice | 1 Комментарий
Начну с того, что в случае, когда мы изучаем какую-нибудь новую технологию, которая увеличивает нашу продуктивность, сложно увидеть, когда эта технология не работает. Потому что мы ее только еще изучаем и не знаем всех аспектов. Обычно мы изучаем ее на примере какого-нибудь небольшого проекта, а это дает нам мало пищи для размышлений.
Например, возьмем объекты из ООП. Раньше, когда они только-только появились, было сложно представить случаи, когда их нежелательно использовать. Были видны в основном только преимущества.
Сейчас то же самое происходит с рефакторингом: мы знаем его преимущества, мы знаем, что рефакторинг может внести ощутимую пользу в нашу работу. Но, мне кажется, мало кто пытается осознать, какие недостатки у него есть. А таковые есть и мы сейчас поговорим о них. Ведь чем больше мы изучаем технологию, тем больше ее проблем мы сможем решить, тем больше проблем мы узнаем, которые не поддаются решению вообще.
Читать далее »
Сен 13, 2008 | Автор :
Novice | Нет комментариев
Этой статьей я открываю новую рубрику под названием «Продвинутый php», где буду, например, рассматривать различные вопросы относительно рефакторинга кода (я имею в виду PHP) и приводить различные примеры и приемы рефакторинга. А начнем мы сегодня с самого простого – с определения рефакторинга, т.е. узнаем, что же это за понятие.
Любой программист рано или поздно сталкивается с этим понятием (или «техникой», если хотите), вот дошло дело и до меня.
Читать далее »
Сен 09, 2008 | Автор :
Novice | 5 Комментариев