Описание тега anti-patterns

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

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

SQL-инъекция

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

Пример:

query-string = "select * from users where id='" + userid + "';"

Если предположить userid переменная поступила непосредственно от пользователя, злоумышленник может вызвать проблемы, установив для нее значение, которое может вызвать неожиданное поведение:

userid = "' or 1=1;drop table users"

Тесная связь

Вместо того, чтобы хранить две отдельные части приложения отдельно (CSS и HTML; бизнес-логика и представление в приложении MVC), части смешиваются таким образом, что изменение одной влечет за собой изменение другой.

Пример:

CSS

.yellow { color: yellow; }

HTML

<div class="yellow">foo</div>

Чтобы изменить форматирование, либо содержимое (HTML) должно быть изменено путем замены другого имени класса, либо определение класса (CSS) должно быть изменено на то, что не соответствует его имени.

Другие

В Википедии есть и другие примеры.