Don’t repeat yourself

Don’t repeat yourself

Don’t Repeat Yourself (DRY, рус. Не повторяйся) — это принцип разработки программного обеспечения, нацеленный на снижение повторения информации различного рода, особенно в системах со множеством слоёв абстрагирования. Принцип DRY формулируется как: «Каждая часть знания должна иметь единственное, непротиворечивое и авторитетное представление в рамках системы»[1]. Он был сформулирован Энди Хантом (англ.) и Дэйвом Томасом (англ.) в их книге The Pragmatic Programmer (англ.). Они применяли этот принцип к «схемам баз данных, планам тестирования, сборкам программного обеспечения, даже к документации»[2]. Когда принцип DRY применяется успешно, изменение единственного элемента системы не требует внесения изменений в другие, логически не связанные элементы. Те элементы, которые логически связаны, изменяются предсказуемо и единообразно. Помимо использования методов и функций в коде, Томас и Хант считают необходимым использование генераторов кода, автоматических систем компиляции.

Содержание

Применение принципа DRY

Принцип DRY, известный также как Single Source of Truth (англ.), превалирует в Model Driven Architecture-системах, в которых артефакты программы извлекаются из главной модели объекта и выражаются в такой форме, как UML. Код, написанный по принципу DRY, создаётся с помощью конвертации данных и генераторов кода, которые позволяют разработчику ПО избежать операций вырезания, копирования и вставки. Обычно код, написанный по этому принципу, позволяет легче управлять большими информационными системами. Такие инструменты, как XDoclet (англ.) и XSLT являются примерами техник программирования DRY. Примерами систем, которые требуют дублирования информации, являются Enterprise Java Beans версии 2, которая требует не только дублирования в коде Java, но и в файлах конфигурации. Примерами систем, в которых сделана попытка устранить дублирование информации, являются фреймворки Symfony, web2py (англ.), Yii, Django, Ruby on Rails[3][4], а также среды разработки Visual Studio LightSwitch и Enterprise Java Beans версии 3.

DRY и WET

Нарушения принципа DRY называют WET — «Write Everything Twice» (рус. Пиши всё по два раза)[5]. Это игра английских слов «dry» (рус. сухой) и «wet» (рус. влажный).

См. также

Примечания

  1. Джереми Миллер. The Don’t Repeat Yourself Principle and the Wormhole Anti-Pattern  (англ.) (22 марта 2007). Архивировано из первоисточника 29 октября 2012. Проверено 23 августа 2012 года.
  2. Дэйв Томас (интервью провёл Билл Веннерс). Orthogonality and the DRY Principle  (англ.) (10 октября 2003). Архивировано из первоисточника 29 октября 2012. Проверено 23 августа 2012.
  3. DRY--Don't Repeat Yourself  (англ.). About.com. Архивировано из первоисточника 29 октября 2012. Проверено 23 августа 2012 года.
  4. Sam Ruby, Dave Thomas. Agile Web Development with Rails. — Pragmatic Programmers, LLC., 2011. — P. 17.
  5. Алекс Пападимулис. The WET Cart  (англ.) (12 августа 2011). Архивировано из первоисточника 29 октября 2012. Проверено 21 мая 2012 года.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Don’t repeat yourself" в других словарях:

  • Don't Repeat Yourself — Don’t Repeat Yourself (DRY, auch bekannt als Once and Only Once, dt. etwa: Wiederhole dich nicht) ist ein Prinzip, das besagt, Redundanz zu vermeiden oder zumindest zu reduzieren. Ein Anwendungsgebiet für das DRY Prinzip ist z. B. die… …   Deutsch Wikipedia

  • Don't repeat yourself — Don’t Repeat Yourself (DRY, auch bekannt als Once and Only Once, dt. etwa: Wiederhole dich nicht) ist ein Prinzip, das besagt, Redundanz zu vermeiden oder zumindest zu reduzieren. Ein Anwendungsgebiet für das DRY Prinzip ist z. B. die… …   Deutsch Wikipedia

  • Don't repeat yourself — In software engineering, Don t Repeat Yourself (DRY) or Duplication Is Evil[citation needed] (DIE) is a principle of software development aimed at reducing repetition of information of all kinds, especially useful in multi tier architectures. The …   Wikipedia

  • Don’t repeat yourself — Dieser Artikel wurde zum Export in das Software Wiki angemeldet. Däädaa 20:00, 18. Nov. 2011 (CET) …   Deutsch Wikipedia

  • Don't Repeat Yourself — Ne vous répétez pas Ne vous répétez pas (Don t Repeat Yourself) est une philosophie en programmation informatique consistant à éviter la redondance de code au travers de l ensemble d une application afin de faciliter la maintenance, le test, le… …   Wikipédia en Français

  • Don't repeat yourself — Ne vous répétez pas Ne vous répétez pas (Don t Repeat Yourself) est une philosophie en programmation informatique consistant à éviter la redondance de code au travers de l ensemble d une application afin de faciliter la maintenance, le test, le… …   Wikipédia en Français

  • repeat — re|peat1 W2S2 [rıˈpi:t] v [T] ▬▬▬▬▬▬▬ 1¦(say again)¦ 2¦(do again)¦ 3¦(learn)¦ 4¦(tell)¦ 5¦(broadcast)¦ 6 something doesn t bear repeating Phrasal verbs  repeat on somebody ▬▬▬▬▬▬▬ [Date: 1300 1400; : Old F …   Dictionary of contemporary English

  • repeat — I UK [rɪˈpiːt] / US [rɪˈpɪt] verb [transitive] Word forms repeat : present tense I/you/we/they repeat he/she/it repeats present participle repeating past tense repeated past participle repeated *** 1) to say or write something again Can you… …   English dictionary

  • repeat — re|peat1 [ rı pit ] verb transitive *** 1. ) to say or write something again: Can you repeat what you just said, please? The first line is repeated throughout the poem. If you repeat those allegations, we will consult our lawyers. repeat that: He …   Usage of the words and phrases in modern English

  • repeat — 1 /rI pi:t/ verb 1 STATE AGAIN (T) to say or write something again: Can you repeat your question? | repeat that: Steven repeated patiently that he was busy. see say 1 2 DO AGAIN (T) to do something again: Repeat the treatment twice a day if… …   Longman dictionary of contemporary English


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»