Открыть меню

Вводная статья по паттернам проектирования

Что же такое паттерны проектирования? Постараюсь дать определение своими словами: это готовые рецепты (приемы) для создания оптимальной структуры кода (архитектуры приложения) для конкретных задач или условий. Под «оптимальной» я имею ввиду не оптимизацию (скорость или ресурсы приложения), а ясность, читабельность, удобство расширения и работы с таким кодом. Паттерны всегда несут как пользу, так и недостатки (увеличение сложности системы и т.п) своего внедрения. В конечном итоге приходится выбирать в конкретном случае, и если пользы больше — использовать шаблон.

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

Про опыт

Последние пять лет я занимался только разработкой. И в течение этого времени часто пересекался с паттернами — изучал, встречал в статьях на хабре, обсуждал с коллегами, встречал их в проектах, осознанно, а иногда и бессознательно внедрял их. Бессознательно не в смысле использования для галочки, а сам код подсказывал красивые решения, которые, как оказалось, уже описаны в книгах.
Когда я только начинал программировать и читал Мэта Зандстру («Объекты, шаблоны и методики программирования»), то многие паттерны хоть и были понятны в теории, но я не видел их применения на практике, от чего это было «сухое» и временами трудное чтиво. Толк от этого был в том, что при чтении кода у тебя что-то могло ёкнуть — можно было хотя бы распознать что-то похожее, а затем идти гуглить.

Мне не хватало опыта. Я считаю, что паттерны, как и любые другие «методики» в других областях — это не быстрая тема для понимания. Их надо перечитывать и в начале программистского пути и время от времени после. Дело в том, что сначала надо повстречать специфические задачи на практике, ощутить боль и стыд от первых криво-написанных решений, страдать от этого, ломать вечерами голову, как можно было сделать лучше, и после всех ментальных мучений прийти к более правильным решениям. Прочувствовать их на 100%. Эти эмоции делают код «живым» и подсказывают, когда что-то идет не так. Это, наверное, общий путь повышения профессионализма в ремесле, коим программирование и является. Мало понимать концепцию и тех. реализацию паттернов, надо уметь распознать ситуацию, в которой они необходимы, то есть уметь их применять.

В начале можно научиться простым приемам типа «фабрика», «строитель», «одиночка», так называемым «порождающим» паттернам. Они просты для понимания, необходимость в них появляется довольно быстро и её легко распознать.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

© 2022 Продвижение сайтов в Санкт-Петербурге · Копирование материалов сайта без разрешения запрещено