Паттерны проектирования

В программировании есть такое, нынче не модное понятие - паттерны проектирования. Это - стандартные подходы к решению типовых задач.

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

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

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

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

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

Можно косноязычно распинаться 15 минут, описывая своё гениальное предложение перед коллегами, а можно предложить: "давайте используем такой-то паттерн?" Отдельным бонусом идет облегчение взаимодействия в интернациональной команде: уровень языка у всех разный, кому-то тяжело долго говорить, кому-то - воспринимать информацию на слух. Но ''use abstract factory'' поймут все квалифицированные программисты вне зависимости от знания английского.

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


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=40149