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 года.

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