digital-garden/dev/efficiency/Don't Repeat Yourself.md
Struchkov Mark 320a20c2b4
Some checks failed
continuous-integration/drone/push Build is failing
Обновление
2024-11-24 11:44:57 +03:00

4.1 KiB
Raw Blame History

aliases tags date
DRY
maturity/🌱
2024-11-24

Принцип DRY направлен на устранение избыточности в коде и обеспечение его поддерживаемости.

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

Также принцип DRY часто применяется при проектировании базы данных. Когда данные нормализованы, однотипная информация хранится в одном месте, что снижает избыточность и упрощает её изменение.

Преимущества принципа DRY

  • Упрощение поддержки. Когда логика сосредоточена в одном месте, любые изменения в ней вносятся единожды, что делает код проще в сопровождении. Например, если логика вычисления налогов вынесена в отдельный модуль, изменения в налоговых правилах потребуют правки только в этом модуле. Это снижает вероятность ошибок и помогает быстрее вносить правки.
  • Улучшение читаемости. Код, в котором нет дублирования, проще читать и понимать. Каждый модуль или компонент ../architecture/Single Responsibility Principle, что улучшает структуру и восприятие проекта.
  • Снижение рисков ошибок. Дублированный код часто ведет к несогласованности и ошибкам при изменениях. DRY помогает поддерживать целостность системы и снижает риск возникновения ошибок из-за некорректных правок в одном из дублирующихся мест.
  • Ускорение разработки. Избавление от дублирования позволяет быстрее добавлять новые функции или изменять существующие, поскольку разработчики могут сосредоточиться на одной реализации, а не искать все места, где повторяется похожий код.

Примеры нарушения DRY

  • Дублирование одного и того же кода в разных модулях вместо вынесения его в общий компонент.
  • Копирование и вставка бизнес-логики вместо использования общих методов.
  • Повторное хранение одинаковой информации в разных таблицах базы данных.

Мета информация

Область:: ../../meta/zero/00 Эффективная разработка Родитель:: Источник:: Создана:: 2024-11-24 Автор::

Дополнительные материалы

Дочерние заметки