Погружение в шаблоны проектирования даёт понимание того, как правильно применять лучшие практики для моделирования предметной области в компоненты языка программирования. Также оно (изучение) помогает разобраться почему реализованы те или иные части популярных фреймворков.
Шаблоны (иногда их называют паттернами) обычно не привязаны к языку программирования, потому что предназначены для решения типовой задачи. Узнав как создается шаблон Адаптер или Декоратор вы можете попробовать его реализовать на языке объектно-ориентированном языке программирования, который знаете. Знание базовых шаблонов также помогает разработчикам общаться в команде с коллегами — не тратиться доп. время на разъяснение концепции решения той или иной задачи.
Мы рассматриваем шаблоны проектирования в PHP на курсах PHP. В сети есть много сайтов, охватывающих эту тему. Из литературы можно посоветовать:
Шаблоны проектирования: книги
- PHP. Объекты, шаблоны и методики программирования. Мэтт Зандстра
- Паттерны проектирования. Эрик Фримен, Элизабет Фримен
- Приемы объектно-ориентированного проектирования. Паттерны проектирования. Эрих Гамма, Ричард Хелм и др.
- Шаблоны реализации корпоративных приложений. Кент Бек
- Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ, проектирование и итеративную разработку. Крэг Ларман
Книга Зандстры выдержала несколько изданий, достаточно простым языком разъясняет сложные пример (кому вначале покажется сложным, посмотрите последние две книги из списка 🙂 ). Кроме шаблонов проектирования рассматриваются хорошие практики разработки программного обеспечения и все это применимо к PHP.
Книга Фрименов, как и все книги из серии Head&First призваны навести порядок в голове у всех начинающих, в данном случае — работать с шаблонами проектирования. Содержит очень много примеров на Java (если знаком PHP — можно читать).
На книгу Бека часто ссылается Зандстра. Но «Шаблоны реализации корпоративных приложений» лучше читать после просмотра других книг списка.
Шаблоны проектирования: фреймворки
Для того, чтобы хорошо разобраться в шаблонах, нужно знакомиться с кодом передовых разработок. Например, знакомимся с шаблоном Наблюдатель (Observer). Если параллельно рассматриваем Zend Framework 2, то обнаруживаем компонент EventManager, который реализует шаблон Наблюдатель. Это касается всех передовых фреймворков, которые на слуху.
- https://github.com/domnikl/DesignPatternsPHP
- https://laravel.com/
- http://www.yiiframework.com/
- https://symfony.com/
- http://framework.zend.com/
Примечание: перед началом знакомства с шаблонами, можно посмотреть язык визуального моделирования UML. UML даёт возможность читать и создавать диаграммы, описывающие шаблоны проектирования (на самом деле, для описания взаимодействия между объектами, состояний объектов используются разные комбинации базовых фигур UML). Если есть желание создать свою UML-диаграмму не на листке бумаги, можно воспользоваться одним из онлайн-сервисов или стационарной программой. Обратите внимание на DIA она медленно, но уверенно развивается. У неё есть и неудобные моменты с точки зрения удобства использования, но она меня очень выручила, когда однажды искал способ автоматической генерации PHP-кода из диаграммы (есть плагин).
[…] с классами в PHP. Иногда на курсы PHP приходят изучать шаблоны проектирования или фреймворки, в этом случае обязательно […]