Learning JavaScript Design Patterns / Шаблоны проектирования JavaScript: Антипаттерны

Оглавление
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Если паттерн это пример хорошего тона, то антипаттерн - это урок который должен быть выучен. Термин "антипаттерн" был придуман в 1995 году Эндрю Кёнигом (Andrew Koenig) в Novermber C++ Report того года. В отчете Кёнига было два определения антипаттернов. Антипаттерны:

turkeevm 19.05.14 в 19:19

0

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

Agnis 25.11.13 в 14:31

0

Описывают, как перейти от данного решения к более правильному.

Agnis 25.11.13 в 14:34

0

На эту же тему Александер пишет о трудностях в достижении баланса между хорошим проектом структуры и хорошим контекстом:

turkeevm 22.05.14 в 17:23

0
+1

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

Agnis 25.11.13 в 14:46

0

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

Agnis 18.09.15 в 00:09

0

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

Agnis 18.09.15 в 00:10

0

Передача строк вместо функций в setTimeout или setInterval. В результате неявно вызывается eval().

Agnis 18.09.15 в 00:12

0

Изменение прототипа класса Object (это особенно опасный антипаттерн)

Agnis 18.09.15 в 00:13

0

Использование встроенного JavaScript. Такой код сложнее менять.

Agnis 18.09.15 в 00:18

0

Использование document.write вместо операций с DOM, таких как document.createElement. Многие годы document.write использовался не по назначению. Он имеет множество недостатков. Например, если страница с ним успела загрузится перед его выполнением, document.write может перезаписать всю страницу. document.createElement лишен такой проблемы. Мы можем увидеть здесь живой пример в действии. Также document.write не работает в XHTML коде. И это еще одна причина посмотреть в сторону более близких к DOM методов, в частности, document.createElement.

Agnis 18.09.15 в 00:32

0

Знание антипаттернов важно для успеха. Распознавая и устраняя антипаттерны, мы мнгновенно улучшим общее качество наших решений.

Agnis 18.09.15 в 00:36

0
Минутку...