Паттерны проектирования. Банда четырех

97802016336102

Книга содержит описание 23 паттернов (шаблонов) программирования. Авторами являются четыре специалиста, часто их называют «Бандой четырех».

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

Книга выпущена в 1994 году, но это почти ничего не значит. Компьютеры будут становится все мощнее, будут популярны новые языки программирования, но абстрактные идеи, обернутые в паттерны, никогда не устареют. Примечание: новые языки программирования могут облегчить реализацию паттернов.

Общая терминология

Читатель иногда может поймать себя на мысли, что описываемый паттерн он/она знает, просто использовался без названия. Это один из целей книги — предложить комьюнити общую терминологию. Это намного укоротит диалоги:

— Здесь хорошо подошел бы Facade.

— Согласен!

Структура

Содержимое книги «каталогизировано». Каждый паттерн имеет свое название, альтернативные названия, главную идею, пример кода и т.д. Очень сложно запомнить все описанные паттерны со всеми деталями и нюансами, потому данная книга может стать отличным справочником.

Примеры

Все примеры решают задачи, возникающие при разработке текстового редактора. С одной стороны, это облегчает понимание примеров — в течение всей книги надо держать в уме только одну глобальную задачу. С другой стороны, некоторые примеры были достаточно «синтетическими» и я находил лучшие примеры в Википедии и других источниках.

Критика идеи использования паттернов

Во многих книгах мы можем прочитать мнение о том, что код должен быть настолько простым и понятным, насколько это возможно. «Хитрый» код в большинстве случаев означает плохой код. Пол Грэм — основатель Hacker News — писал:

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

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

Однажды я услышал одну интересную мысль:

Замечательно, что разработчик использует паттерны, но еще лучше — использовать их только по необходимости.

Заключение

Стив Макконнелл в своей книге «Совершенный код» составил список литературы для разработчика программного обеспечения. Он разделил книги на три уровня: Начинающий, Практикующий, Профессионал. «Совершенный код» был в списке для начинающих, когда «Паттерны проектирования» — для профессионалов. Делайте выводы сами :)

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Картинка профиля Doszhan Kalibek

Doszhan Kalibek