Насколько актуальны шаблоны проектирования ОО для веб-разработки на PHP? - PullRequest
8 голосов
/ 10 марта 2010

Singleton, Decorator, Abstract, Factory, и этот список можно продолжить. Насколько актуальны шаблоны проектирования ОО при разработке PHP-приложений для Интернета? Делает ли это что-нибудь для производительности? Или это просто для того, чтобы сохранить код в гибких методах разработки? Кто является основным спонсором для реализации этих шаблонов проектирования? Это заказчик или разработчик?

Я понимаю, что задаю несколько вопросов, но все они относятся к одной и той же теме. Я не уверен, что есть необходимость в шаблонах проектирования ОО с использованием языка сценариев, поскольку он компилируется во время выполнения. Что вы все думаете? Это важно?

Ответы [ 5 ]

10 голосов
/ 10 марта 2010

Шаблоны проектирования созданы для решения конкретных задач.Эти проблемы возникают независимо от того, используете ли вы PHP или любой другой язык (хотя шаблоны могут также отличаться в зависимости от языка).Большинство шаблонов имеют свои корни в объектно-ориентированном дизайне, но могут быть адаптированы к процедурным настройкам.Используйте шаблон проектирования, если у вас есть проблема, которую этот шаблон решает, будь то PHP или любой другой язык.Не используйте шаблон проектирования только потому, что это «шаблон проектирования» - знайте, как и когда он применяется, а когда нет.

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

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

3 голосов
/ 10 марта 2010

Насколько актуальны шаблоны проектирования ОО при разработке PHP-приложений для Интернета?

ИМО, они очень важны для любого нетривиального приложения PHP, если используемый вами шаблон применим для рассматриваемой проблемы.

Есть ли что-нибудь для производительности?

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

Один пример, который я могу придумать, где шаблон будет непосредственно улучшать «производительность» (в отношении использования памяти), это правильное использование шаблона синглтона. Если вам действительно нужен только один экземпляр объекта в любой момент времени, вы минимизируете использование памяти, используя этот экземпляр.

Или это просто для того, чтобы сохранить код в гибких методах разработки?

Я бы сказал, что правильное использование шаблонов делает код более понятным, а не "экономным". Это облегчит любой цикл разработки, в том числе agile, поскольку код, использующий известные шаблоны, легче читать.

Кто является основным спонсором для реализации этих шаблонов проектирования? Это заказчик или разработчик?

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

1 голос
/ 10 марта 2010

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

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

1 голос
/ 10 марта 2010

Да, но вы должны выбрать правильные шаблоны для платформы. Безусловно, наиболее важным шаблоном проектирования ОО является MVC (Model-View-Controller), который используют все основные платформы (CakePHP, CodeIgniter и т. Д.).

0 голосов
/ 10 марта 2010

Что алгоритмы (например, быстрая сортировка) для процедурного программирования, шаблоны проектирования для объектно-ориентированного проектирования. Это проверенный способ решить некоторые общие проблемы.

Главный бенефициар - разработчик, но в качестве побочного эффекта покупатель, вероятно, получит лучший конечный продукт.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...