Классификация паттернов
Антипаттерны и классификация
Антипаттерны (anti-patterns), также известные как ловушки (pitfalls) — это классы наиболее часто внедряемых плохих решений проблем. Они изучаются, как категория, в случае когда их хотят избежать в будущем, и некоторые отдельные случаи их могут быть распознаны при изучении неработающих систем. Термин происходит из информатики, из книги «Банды четырёх» Шаблоны проектирования, которая заложила примеры практики хорошего программирования. Авторы назвали эти хорошие методы «паттернами», и противоположными им являются «антипаттерны». Частью хорошей практики программирования является избегание антипаттернов.
Антипаттерны разработки
Антипаттерны архитектуры
Антипаттерны менеджмента
Антипаттерны в управлении разработкой ПО и их свойства «Дым и зеркала» (Smoke and mirrors)Демонстрация того, как будут выглядеть ненаписанные функции. Название происходит от двух излюбленных способов, которыми фокусники скрывают свои секреты «Раздувание» ПО (Software bloat)Разрешение последующим версиям системы требовать все больше и больше ресурсов «Функции для галочки»Превращение программы в конгломерат плохо реализованных и не связанных между собой функций (как правило, для того чтобы заявить в рекламе, что функция есть)
Антипаттерны в разработке ПО Неопределенная точка зрения (Ambiguous viewpoint) Представление модели без спецификации ее точки рассмотрения «Б ОЛЬШОЙ КОМОК грязи» (Big ball of mud)Система с нераспознаваемой структурой «Раздувание интерфейса» (Interface bloat)Изготовление интерфейса очень мощным и очень трудным для осуществления
Антипаттерны в объектно-ориентированном проектировании «Божественный» объект (God object)Концентрация слишком большого количества функций в одной части системы (классе) «Полтергейст» (Poltergeist)Объекты, чье единственное предназначение передавать информацию другим объектам
Антипаттерны в области программирования Ненужная сложность (Accidental complexity)Внесение ненужной сложности в решение «Действие на расстоянии» (Action at a distance) Неожиданное взаимодействие между широко разделенными частями системы «Накопить и запустить» (Accumulate and fire)Установка параметров подпрограмм в наборе глобальных переменных.
Захман
Существует слишком много проблем, которые необходимо устранить для успешного создания архитектуры MAM-EA, но невозможно устранить с помощью методологии Захмана. Методология Захмана не дает пошаговых инструкций по созданию архитектуры. Методология Захмана даже не позволяет определить, является ли создаваемая архитектура лучшей из возможных. Кроме того, методология Захмана не позволяет определить, необходимо ли вообще создавать новую архитектуру. Для решения этих и других проблем необходимо обратиться к другим методологиям.
Классификация паттернов
Предлагается следующая общая классификация паттернов по категориям их применения:
Архитектурные паттерны
Паттерны проектирования
Паттерны анализа
Паттерны тестирования
Паттерны реализации