Принцип DRY

Don't repeat yourself (DRY, переводится как Не повторяй себя) - это принцип разработки программного обеспечения, направленный на сокращение повторения паттернов программного обеспечения, заменяя их абстракциями или используя нормализацию данных, чтобы избежать избыточности.

Принцип DRY гласит: "Каждая часть знаний должна иметь одно, однозначное, авторитетное представление в системе". Этот принцип был сформулирован Энди Хантом и Дейвом Томасом в их книге "Прагматичный программист". Они применяют его довольно широко, включая его применения для схем баз данных, планов тестирования, систем сборки, и даже документации. Когда принцип DRY применяется успешно, модификация любого отдельного элемента системы не требует изменения других логически не связанных элементов. Кроме того, все элементы, которые логически связаны, изменяются предсказуемо и равномерно и, таким образом, синхронизируются. Помимо использования методов и подпрограмм в своем коде, Томас и Хант полагаются на генераторы кода, системы автоматической сборки и языки сценариев для соблюдения принципа DRY на разных уровнях.

DRY против WET решений

Нарушения DRY обычно называются решениями WET, которые обычно обозначают как "write every time" ("пишите каждый раз"), "write everything twice" ("пишите все дважды"), "we enjoy typing" ("нам нравится печатать") или "waste everyone's time" ("тратить время каждого"). Решения WET широко распространены в многоуровневых архитектурах, где перед разработчиком может быть поставлена задача, например, добавить поле комментария в форму в веб-приложении. Текстовая строка "comment" может повторяться в метке, HTML-теге, в имени функции чтения, закрытой переменной, DDL базы данных, запросах и т. д. Подход DRY устраняет эту избыточность за счет использования фреймворков, которые уменьшают или исключают все эти задачи редактирования, кроме самых важных, оставляя возможность добавления новых переменных знаний в одном месте.


Читайте также:

Комментарии

Популярные сообщения из этого блога

Язык поисковых запросов в Graylog

Нормальные формы, пример нормализации в базе данных

Хэш-таблица: разрешение коллизий