Архив на категорию : 'Продвинутый php'

avatar

Начнем с того, что сформулируем такое правило: аргументы функций нельзя модифицировать. Это путает того, кто читает Ваш код.

Вот, например, рассмотрим следующий кусок кода:

<?
function fn($val, $qty, $year) {
	if ($val > 70) $val -= 2;
	...
?>

Как видим, тут кто-то взял и изменил значение аргумента функции (наверно, я icon smile Модификация аргументов функций ). Причем заметим, что в PHP без явного указания аргументы всегда передаются по значению, а не по ссылке. Если по правилу, то мы должны были сделать вот так:

<?
function fn($val, $qty, $year) {
	$res = $val;
	if ($val > 70) $res -= 2;
	...
?>

Читать далее »

avatar

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

Сразу перейдем к примеру.

Допустим, у нас есть следующая функция, которая ищет в массиве нужных людей, и, если находит, возвращает имя человека, а если не находит – возвращает пустую строку:

<?
	…

	function findPerson($people) {
		foreach ($people as $person) {
			if ($person == 'Alex') {
				return 'Alex';
			}
			if ($person == 'Michael') {
				return 'Michael';
			}
			if ($person == 'Sergey') {
				return 'Sergey';
			}
		}

		return '';
	}

	…
?>

Читать далее »

avatar

Этой статьей я начинаю рассматривать различные приемы рефакторинга. Сегодня рассмотрим то, как правильно обращаться с переменными, а именно: как избавиться от временных переменных.

Рассмотрим следующую ситуацию: у нас есть временная переменная, которая принимает больше чем одно значение (значение присваивается ей не однократно). При этом допустим, что эта переменная не имеет отношения к циклу:

<?
	$temp = 2 * ($height + $width);
	echo $temp;
	$temp = $height * $width;
	echo $temp;
?>

Читать далее »

avatar

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

Это важная проблема. И есть множество профессионалов, которые предпочитают писать более чистый и расширяемый код в ущерб его производительности, или надеясь на высокую производительность аппаратной части (железа). Рефакторинг, конечно, уменьшает производительности программы, но при этом делает программный код более податливым к дальнейшей оптимизации. Секрет быстрой программы заключается в том, что сначала ее код нужно сделать как можно более настраиваемым, а затем провести ее настройку в требуемой степени.
Читать далее »

avatar

Совсем недавно у нас появился новый раздел “Продвинутый php”, который фактически символизирует переход на следующую ступень на нашем пути от новичков до профессионалов icon smile 6 нормальных форм БД В связи с таким качественных переходом, будет несправедливо не затронуть тему имеющую непосредственной отношение к программированию на php – проектированию базы данных.

При написании небольших программ на php, владеть навыками, которые будут описаны в этой статье, не так важно. Но если Вы беретесь за задачи побольше (какая-нибудь CMS или просто большой портал), то они для Вас будут просто необходимыми.
Читать далее »

avatar

Начну с того, что в случае, когда мы изучаем какую-нибудь новую технологию, которая увеличивает нашу продуктивность, сложно увидеть, когда эта технология не работает. Потому что мы ее только еще изучаем и не знаем всех аспектов. Обычно мы изучаем ее на примере какого-нибудь небольшого проекта, а это дает нам мало пищи для размышлений.

Например, возьмем объекты из ООП. Раньше, когда они только-только появились, было сложно представить случаи, когда их нежелательно использовать. Были видны в основном только преимущества.

Сейчас то же самое происходит с рефакторингом: мы знаем его преимущества, мы знаем, что рефакторинг может внести ощутимую пользу в нашу работу. Но, мне кажется, мало кто пытается осознать, какие недостатки у него есть. А таковые есть и мы сейчас поговорим о них. Ведь чем больше мы изучаем технологию, тем больше ее проблем мы сможем решить, тем больше проблем мы узнаем, которые не поддаются решению вообще.
Читать далее »

avatar

Этой статьей я открываю новую рубрику под названием «Продвинутый php», где буду, например, рассматривать различные вопросы относительно рефакторинга кода (я имею в виду PHP) и приводить различные примеры и приемы рефакторинга. А начнем мы сегодня с самого простого – с определения рефакторинга, т.е. узнаем, что же это за понятие.

Любой программист рано или поздно сталкивается с этим понятием (или «техникой», если хотите), вот дошло дело и до меня.
Читать далее »


Страница 3 из 3123


© 2008 - 2012 i-novice.net | Все права защищены.