Source Что такое антипаттерны?
Антипаттерны описывают распространённые ошибки или индикаторы проблем в коде. Они также известны как «запахи кода».
Цель этих руководств — документировать потенциальные антипаттерны, встречающиеся в программном обеспечении Elixir, и обучить разработчиков их распознаванию и пониманию их недостатков. Если существующий фрагмент кода соответствует антипаттерну, это не означает, что ваш код необходимо переписывать. Иногда, даже если фрагмент соответствует потенциальному антипаттерну и его ограничениям, это может быть лучшим подходом к данной проблеме. Ни одна база кода не свободна от антипаттернов, и не следует стремиться удалить все из них.
Антипаттерны в этих руководствах разделены на 4 основные категории:
Антипаттерны, связанные с кодом: связанные с вашим кодом и конкретными языковыми идиомами и функциями;
Антипаттерны, связанные с дизайном: связанные с вашими модулями, функциями и ролью, которую они играют в базе кода;
Антипаттерны, связанные с процессом: связанные с процессами и процессами абстракциями;
Антипаттерны метапрограммирования: связанные с метапрограммированием.
Каждый антипаттерн документируется с использованием следующей структуры:
Имя: Уникальный идентификатор антипаттерна. Это имя важно для облегчения общения между разработчиками;
Проблема: Как антипаттерн может навредить качеству кода и каковы последствия этого для разработчиков;
Пример: Код и текстовые описания для иллюстрации возникновения антипаттерна;
Рефакторинг: Способы изменения вашего кода для повышения его качества. Приводятся примеры рефакторированного кода для иллюстрации этих изменений.
Может быть предоставлен дополнительный раздел с «Дополнительными замечаниями». В него могут быть включены известные сценарии, в которых антипаттерн не применяется.
Изначальный каталог антипаттернов был предложен Лукасом Веги и Марко Тулио Валенте из ASERG/DCC/UFMG. Дополнительную информацию можно найти в Understanding Code Smells in Elixir Functional Language и соответствующем репозитории кода.
Кроме того, рабочая группа по безопасности Erlang Ecosystem Foundation публикует документы с ресурсами по безопасности и лучшими практиками как Erlang, так и Elixir, включая подробные руководства для веб-приложений.
© 2012-2024 The Elixir Team
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.16.3/what-anti-patterns.html