Learning JavaScript Design Patterns / Шаблоны проектирования JavaScript: Антипаттерны
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Если паттерн это пример хорошего тона, то антипаттерн - это урок который должен быть выучен. Термин "антипаттерн" был придуман в 1995 году Эндрю Кёнигом (Andrew Koenig) в Novermber C++ Report того года. В отчете Кёнига было два определения антипаттернов. Антипаттерны: turkeevm 19.05.14 в 19:19 |
|
|
Описывают плохое решение конкретной проблемы, которое приводит к нежелательным результатам. Agnis 25.11.13 в 14:31 |
||
|
Описывают, как перейти от данного решения к более правильному. Agnis 25.11.13 в 14:34 |
||
|
На эту же тему Александер пишет о трудностях в достижении баланса между хорошим проектом структуры и хорошим контекстом: turkeevm 22.05.14 в 17:23 |
||
| +1 | ||
|
Важно знать как о шаблонах проектирования, так и понимать антипаттерны. Укажем причину. При создании приложения, жизненный цикл проекта начинается с написания кода, однако, как только первый релиз выпущен, его необходимо поддерживать. Качество конечного решения будет хорошим или плохим. в зависимости от навыков команды и потраченного времени на проект. Являются ли те или иные решения хорошими, зависит от контекста: "идеальный" замысел может оказаться антипаттерном, если применить его в несоответствующем контексте. Agnis 25.11.13 в 14:46 |
||
|
Подводя итог, антипаттерны являются настольно плохим примером проектирования, что их стоит задокументировать. Примеры антипаттернов: Agnis 18.09.15 в 00:09 |
||
|
Засорение глобального пространства имен через определение большого количества переменных в глобальном контексте. Agnis 18.09.15 в 00:10 |
||
|
Передача строк вместо функций в setTimeout или setInterval. В результате неявно вызывается eval(). Agnis 18.09.15 в 00:12 |
||
|
Изменение прототипа класса Object (это особенно опасный антипаттерн) Agnis 18.09.15 в 00:13 |
||
|
Использование встроенного JavaScript. Такой код сложнее менять. Agnis 18.09.15 в 00:18 |
||
|
Использование document.write вместо операций с DOM, таких как document.createElement. Многие годы document.write использовался не по назначению. Он имеет множество недостатков. Например, если страница с ним успела загрузится перед его выполнением, document.write может перезаписать всю страницу. document.createElement лишен такой проблемы. Мы можем увидеть здесь живой пример в действии. Также document.write не работает в XHTML коде. И это еще одна причина посмотреть в сторону более близких к DOM методов, в частности, document.createElement. Agnis 18.09.15 в 00:32 |
||
|
Знание антипаттернов важно для успеха. Распознавая и устраняя антипаттерны, мы мнгновенно улучшим общее качество наших решений. Agnis 18.09.15 в 00:36 |
