Злоупотребление шаблонами проектирования, или “код с душком”

Главная Форумы Программирование Технология программирования Паттерны Злоупотребление шаблонами проектирования, или “код с душком”

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 3 мес., 3 нед. назад.

  • Автор
    Сообщения
  • #4018

    А вот эта тема непременно должна прозвучать на моём блоге, ибо из личного опыта могу сказать – подсесть на шаблоны проектирования проще простого, но в одних случаях – это хорошо, а в других …

    В основном, те кто знаком с шаблонами проектирования, делятся на 2 категории :

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

    И вторая группа – это те, кто, однажды услышав про шаблоны, начинают читать взахлёб про них и пытаться ввернуть их в неадекватном количестве где надо и где не надо. В принципе, второй группе посвящается…

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

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

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

    Только подумать, настолько богатый инструментарий в руках непрофессионалов превратился в анти-инструментарий. Он так и называется – анти-паттерны.

    Как это может выражаться?

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

    Или параноидальное стремление делать код “гибким”, потенциально способным на любые доработки и готовый ко всем ” а вдруг мы когда-нибудь решим….” Это обычно приводит к путанному коду, большому количеству мелких типов данных, каждый из которых планировался как переходник к объектам другого типа, и в конечном итоге вообще теряется логическая связь между классами, выстраивающимися в цепочки.

    Примеров можно приводить много, у каждой из таких крайностей даже есть своё название, но это не входит в тему данной статьи, поэтому об этом в другой раз.

    Здесь же просто звучит предостережение – пользуйтесь инструментами разработки с умом.

Для ответа в этой теме необходимо авторизоваться.