ТОП-10 популярных


НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...


Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...

Internet2, или cтарые песни о новом
Когда-то на заре Интернета, тогдаеще военно-научной сетиAPRAnet, были заложены основныепринципы функционирования«Сети сетей». В их числе — использованиепротокола, называемого сейчасIPv4. В...

PHP. Типовые проекты


21-07-2015

Популярные среди любителей программирования на Java и C++ типовые проекты еще не стали злободневной темой для программистов, работающих с PHP. Однако они представляют собой довольно важную часть вычислительной науки. Более того, они применимы ко всем языкам программирования.
Истоки типового проектирования берут свое начало в работе Кристофера Алек-сандера (Christopher Alexander). Там они рассматривались применительно к гражданскому строительству. Однако такой подход применим к любой проектной деятельности, и прошло совсем немного времени, как она вдохновила компьютерщиков на новые свершения. Первая популярная книга по типовому проектированию программных систем - это книга Design Patterns: Elements of Reusable Object-Oriented Software авторского коллектива, в который входят Эрих Грамм (Erich Gamma), Ричард Хелм (Richard Helm), Ральф Джонсон (Ralph Johnson) и Джон Влиссидес (John Vlissides). Эту компанию в среде программистов обычно называют "бандой четырех".
29.1. Определение типовых проектов
Интуитивно можно распознать шаблонные решения при программировании почти каждой строчки программного кода. Так, например, работая с массивом, вы уже знаете, каким образом будете обрабатывать его в цикле, т.е. уже даже подсознательно пользуетесь своеобразными типовым проектом. Как только в PHP появился оператор foreach, он стал любимцем многих разработчиков.
С более общей точки зрения мы сталкиваемся с обычной проблемой, заключающейся в распределении функциональности в сценариях PHP. Большинство проектов требует разделения функциональности по отдельным модулям. Обычный информационный Web-узел только выигрывает от применения простейшей схемы, использующей заголовки и колонтитулы, которые включены в сценарий с помощью оператора include или require. . В обоих случаях возникают проблемы, требующие решения, и их стандартные решения. Условия определяют проблему, имеющую известное решение. Более того, после нескольких решений проблемы вы уже будете иметь достаточно четкое понятие о побочных эффектах этого решения.
Формальное определение типового решения включает название проблемы, ее описание и решение, а также какие результаты оно дает. Название упрощает ссылку на типовой проект. Описание проблемы определяет конкретный набор условий, к которым имеет отношение данный шаблон. Решение описывает наилучшую общую стратегию решения проблемы. Наконец, шаблон описывает любые последствия его применения.
Типовые решения не являются предметом новой разработки, и для них не требуется использование новых возможностей. Они представляют тщательное усовершенствование на основании имеющегося опыта и имеют тенденцию к оптимизации использования, а не эффективности. Совершенно естественно, что решение, оптимизированное по быстродействию, извлекает максимальную выгоду из конкретной ситуации и поэтому не очень подходит для решений в обоих случаях. Например, если нам нужно получить сумму трех чисел, то это можно сделать с помощью одной строки кода. Но такое решение неприменимо для получения суммы 10000 чисел, так как в этом случае необходим перебор всех значений в цикле.
Несмотря на то что типовые проекты берут свое начало в гражданском строительстве, в применении к программированию они непосредственно привязаны к объектно-ориентированному проектированию. ООП нацелено на создание обобщенных программных модулей, которые называются объектами. Типовое проектирование призвано выполнять обобщенные решения для обычных задач.
До появления PHP 5 у программистов, работающих с PHP, эффективное применение типовых проектов в PHP считалось сложной задачей. Благодаря PHP 5, в котором была впервые применена объектная модель, облегчилось применение типовых проектов и стали основным ингредиентом в разработке объектно-ориентированных PHP-приложений.
Использование типовых проектов при написании кодов дает два преимущества. Во-первых, не надо искать решение, как только вы поняли, что эта проблема уже соответствует уже однажды решенной проблеме. Во-вторых, нет необходимости анализировать последствия применения типового проекта и тратить время на оптимизацию сделанной программы.
Вместо того чтобы принимать решение, потребуется всего лишь определить, с какой проблемой вы столкнулись. Если для проблемы уже имеется приемлемое типовое решение, то вы сможете, не вдаваясь в подробности проектирования, перейти непосредственно к ее реализации.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Эффективность и отладка. Часть Шестнадцатая. PHP. Типовые проекты. Часть Вторая.