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

avatar

Рассмотрим сегодня такую технику рефакторинга, как разделение функции на две части: одну - для модификации чего-то, вторую - для возвращения значения. Т.е. если у нас есть функция, которая и возвращает результат, и что-то делает с переданным параметром, то лучше ее разделить на две функции, одна из которых что-то возвращала бы, а вторая - что-то принимала бы и выполняла бы какие-то видимые действия.

продолжение статьи

avatar

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

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

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

Как видим, тут кто-то взял и изменил значение аргумента функции (наверно, я :) ). Причем заметим, что в 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

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

продолжение статьи

avatar

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

продолжение статьи

avatar

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

продолжение статьи

avatar

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

продолжение статьи


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


© Copyright. . I-Novice. All Rights Reserved. Terms | Site Map