Что такое Паттерн?

Что такое Паттерн?

Слово Паттерн нечасто встретишь в информационной сфере, однако не стоит считать, что термин узкоспецифический. Например, появление паттерных подходов в программировании позволило упростить задачу создания программ. При чём данные паттерны используются до сих пор. Суть банальна - "Зачем изобретать колесо?". При создании приложений возникают частые однотипные задачи, так чего бы не использовать относительно универсальные подходы к их решению. Но вообще термин подразумевает несколько больший смысл.

Поэтому в рамках данного обзора детально рассмотрим что значит паттерн и некоторые нюансы.

 

Паттерн это

Что такое Паттерн?

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

Примечание: Стоит знать, что термин Паттерн применяется во многих сферах (дизайн, архитектура, музыка, финансы и т.д.), а не только в информационных технологиях. При этом значение термина схоже по смыслу.

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

Но смысл паттерна больше, чем могло сложиться мнение у читателя. Например, в психологии паттерн это набор стереотипных поведенческих реакций или последовательностей действий. Скажем, если человек любит поговорить, то логично ожидать, что вопрос собеседника "Как твои дела?" превратится в длинный диалог.

Так же вам может быть интересен обзор Что лучше небольшие или сложные программы?

 

Паттерны и антипаттерны в ИТ

В области информационных технологий термин антипаттерн означает популярные ошибки и устоявшиеся проблемные паттерны. Банальный пример - ситуация, когда часть информационной системы слишком перегружена функциями (т.е. выполняет множество разнообразных действий). Чтобы лучше понять смысл, рассмотрим пример из жизни. Что представляет из себя полноценная полуденная трапеза? Суп, второе и компот с вкусняшкой. Что будет если блюда смешать в одной кастрюльке? Вряд ли получится изысканный деликатес, правда ведь? Конечно, в желудке еда смешивается, но употреблять блюда приятнее по отдельности.

Тем не менее, стоит понимать, что паттерны и антипаттерны это не сравнение вида "правильно и неправильно". Например, нормальное явление, когда часть системы написана с применением антипаттернов. Скажем, не было времени для написания кода в соответствии с привычными практиками, так как нужно было собрать прототип для демонстрации. В такой ситуации вовремя собранное из "грязи и палок" будет лучше, чем качественное, но невовремя.

Чтобы лучше понять, рассмотрим пример про веб-сайты. Большинство популярных CMS (Opencart, WordPress, Joomla и т.п.) подразумевают, что функциональность добавляется с помощью модулей (расширений), которые придерживаются стандартного подхода этих CMS. Иными словами, паттерн это "нужна функция - установи модуль/расширение и т.п.". Однако в практике ситуация выглядит иначе. Дело в том, что не каждая задача решена модулями, даже в популярных CMS. Поэтому код этих сайтов корректируется "ручками" и не всегда с учётом стандартного подхода CMS, т.е. это антипаттерн.

Плохо ли "ручками" корректировать код сайта? Неоднозначно, хотя некоторые читатели могут поспорить. Может ли это вызывать дополнительные трудности? Может. Но если нет времени ждать, когда появится нужное расширение, и нет достаточного опыта (знаний, желания и т.п.) для создания собственного расширения, то какой ещё вариант?

Так же вам может быть интересен обзор Модель и моделирование: что это такое?

Понравилась заметка? Тогда время подписываться в социальных сетях и делать репосты!

Социальные сети

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

Добавить комментарий / отзыв
Комментарий - это вежливое и наполненное смыслом сообщение (правила).



* Нажимая на кнопку "Отправить", Вы соглашаетесь с политикой конфиденциальности.
Социальные сети
Программы (Freeware, OpenSource...)