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

Ссылки[править | править вики-текст]