Don’t repeat yourself (Don’t repeat yourself)
Don’t repeat yourself (DRY; с англ. — «не повторяйся») — это принцип разработки программного обеспечения, нацеленный на снижение повторения информации различного рода, особенно в системах со множеством слоёв абстрагирования. Принцип DRY формулируется как: «Каждая часть знания должна иметь единственное, непротиворечивое и авторитетное представление в рамках системы»[1]. Он был сформулирован Энди Хантом[англ.] и Дэйвом Томасом в их книге Программист-прагматик. Они применяли этот принцип к «схемам баз данных, планам тестирования, сборкам программного обеспечения, даже к документации»[2]. Когда принцип DRY применяется успешно, изменение единственного элемента системы не требует внесения изменений в другие, логически не связанные элементы. Те элементы, которые логически связаны, изменяются предсказуемо и единообразно. Помимо использования методов и функций в коде, Томас и Хант считают необходимым использование генераторов кода, автоматических систем компиляции.
Применение принципа DRY
[править | править код]Принцип DRY, известный также как единственный источник истины[англ.], превалирует в системах с управляемой моделями архитектурой, в которых артефакты программы извлекаются из главной модели объекта и выражаются в такой форме, как UML. Код, написанный по принципу DRY, создаётся с помощью конвертации данных и генераторов кода, которые позволяют разработчику ПО избежать операций вырезания, копирования и вставки[источник не указан 670 дней]. Обычно код, написанный по этому принципу, позволяет легче управлять большими информационными системами. Такие инструменты, как XDoclet[англ.] и XSLT являются примерами техник программирования DRY. Примерами систем, которые требуют дублирования информации, являются Enterprise Java Beans версии 2, которая требует не только дублирования в коде Java, но и в файлах конфигурации.
Примерами систем, в которых сделана попытка устранить дублирование информации, являются[источник не указан 3286 дней] фреймворки Symfony, web2py, Yii, Django, Ruby on Rails[3][4], Phalcon, а также среды разработки Visual Studio LightSwitch и Enterprise Java Beans версии 3.
DRY и WET
[править | править код]Нарушения принципа DRY называют WET — «Write Everything Twice» (рус. Пиши всё дважды)[5] или «We enjoy typing» (рус. Нам нравится печатать). Это игра английских слов «dry» (рус. сухой) и «wet» (рус. влажный).
См. также
[править | править код]- Повторное использование кода
- Бритва Оккама
- Разделение ответственности
- Принцип KISS
- Принцип YAGNI
- TMTOWTDI
Примечания
[править | править код]- ↑ Джереми Миллер. The Don’t Repeat Yourself Principle and the Wormhole Anti-Pattern (англ.) (22 марта 2007). Дата обращения: 23 августа 2012. Архивировано 29 октября 2012 года.
- ↑ Дэйв Томас (интервью провёл Билл Веннерс). Orthogonality and the DRY Principle (англ.) (10 октября 2003). Дата обращения: 23 августа 2012. Архивировано 29 октября 2012 года.
- ↑ [ruby.about.com/od/af/g/DRY.htm DRY--Don't Repeat Yourself] (англ.). About.com. Дата обращения: 23 августа 2012. Архивировано 29 октября 2012 года.
- ↑ Sam Ruby, Dave Thomas. Agile Web Development with Rails (неопр.). — Pragmatic Programmers, LLC., 2011. — С. 17.
- ↑ Алекс Пападимулис. The WET Cart (англ.) (12 августа 2011). Дата обращения: 21 мая 2012. Архивировано 29 октября 2012 года.
Ссылки
[править | править код]- Ортогональность и принцип DRY (англ.)
- Don’t Repeat Yourself на сайте WikiWikiWeb
- Once and Only Once на сайте WikiWikiWeb
- 97 вещей, которые должен знать каждый программист (O’Reilly) (англ.)
Некоторые внешние ссылки в этой статье ведут на сайты, занесённые в спам-лист |