Не повторяйся - Dont repeat yourself
Не повторяйся (СУХОЙ, а иногда не повторяйся) это принцип из разработка программного обеспечения направленный на уменьшение повторения шаблонов программного обеспечения,[1] заменив его абстракциями или используя нормализация данных чтобы избежать дублирования.
Принцип DRY сформулирован как «Каждая часть знания должна иметь единственное, недвусмысленное и авторитетное представление в системе». Принцип сформулирован Энди Хант и Дэйв Томас в их книге Прагматичный программист.[2] Они применяют это довольно широко, включая "схемы базы данных, планы испытаний, то строить система, даже документация ".[3] Когда принцип DRY применяется успешно, модификация любого отдельного элемента системы не требует изменения других логически не связанных элементов. Кроме того, все элементы, которые логически связаны, изменяются предсказуемо и единообразно и, таким образом, сохраняются в синхронизировать. Помимо использования методы и подпрограммы в своем коде Томас и Хант полагаются на генераторы кода, системы автоматической сборки и языки сценариев соблюдать принцип СУХОЙ между слоями.
СУХИЕ против ВЛАЖНЫХ решений
Нарушения DRY обычно называют WET-решениями, что обычно означает «писать каждый раз», «писать все дважды», «нам нравится печатать» или «тратить время впустую». Решения WET распространены в многоуровневых архитектурах, где разработчику может быть поручено, например, добавить поле комментария в форму в веб-приложении. Текстовая строка «комментарий» может повторяться в метке, теге HTML, в имени функции чтения, частной переменной, DDL базы данных, запросах и т. Д. Подход DRY устраняет эту избыточность за счет использования фреймворков, которые сокращают или устраняют все эти задачи редактирования, кроме наиболее важных, оставляя возможность расширения путем добавления новых переменных знаний в одном месте.[4][5][6]
Смотрите также
- Принцип абстракции (программирование)
- Дублирование кода
- Повторное использование кода
- Скопируйте и вставьте программирование
- Нормализация базы данных и Денормализация
- Зеркальное отображение диска
- Резервирование (инжиниринг)
- Правило трех (компьютерное программирование)
- Разделение проблем
- Единый источник истины (SSOT / SPOT)
- Структурированное программирование
- Два или более, используйте для
Рекомендации
- ^ Фут, Стивен (2014). Обучение программированию. Эддисон-Уэсли Профессионал. п. 336. ISBN 9780133795226.
- ^ Хант, Эндрю; Томас, Дэвид (1999). Прагматичный программист: от подмастерья к мастеру (1-е изд.). США: Аддисон-Уэсли. стр.320. ISBN 978-0201616224.
- ^ Дэйв Томас, интервью Билл Веннерс (2003-10-10). «Ортогональность и принцип DRY». Получено 2006-12-01.
- ^ Джастин Ли (2006-03-08). «СУХОЙ для неудачников». Получено 2013-08-31.
- ^ Алекс Пападимулис (08.12.2011). "ВЛАЖНАЯ тележка". Получено 2012-05-21.
- ^ Кевин Грир (05.02.2016). «ПЕНА СУХАЯ + ВЛАЖНАЯ». Получено 2016-03-09.
внешняя ссылка
- Не повторяйся в WikiWikiWeb
- Один раз и только один раз в WikiWikiWeb
- 97 вещей, которые должен знать каждый программист (О'Рейли)
- Миф о сверхнормализации (обсуждение академических крайностей и реальных сценариев баз данных)
- Wilson G, Aruliah DA, Brown CT, Chue Hong NP, Davis M, Guy RT и др. (2014). «Лучшие практики для научных вычислений». PLoS Biol. 12 (1): e1001745. arXiv:1210.0530. Дои:10.1371 / journal.pbio.1001745.
Не повторяй себя (или других)