Популярные среди любителей программирования на 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-приложений.
Использование типовых проектов при написании кодов дает два преимущества. Во-первых, не надо искать решение, как только вы поняли, что эта проблема уже соответствует уже однажды решенной проблеме. Во-вторых, нет необходимости анализировать последствия применения типового проекта и тратить время на оптимизацию сделанной программы.
Вместо того чтобы принимать решение, потребуется всего лишь определить, с какой проблемой вы столкнулись. Если для проблемы уже имеется приемлемое типовое решение, то вы сможете, не вдаваясь в подробности проектирования, перейти непосредственно к ее реализации.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Типовые проекты
21-07-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Эффективность и отладка. Часть Шестнадцатая. | PHP. Типовые проекты. Часть Вторая. |