Don’t repeat yourself, DRY (бел.: не паўтарайся) — гэта прынцып распрацоўкі праграмнага забеспячэння, накіраваны на скарачэнне рознага роду дубліравання, напрыклад дубліраванне праграмнага кода або дубліраванне адных і тых жа даных у розных частках сістэмы. Прынцып DRY фармулюецца як: «Кожны фрагмент ведаў павінен мець адзінае, адназначнае, аўтарытэтнае прадстаўленне ў сістэме».[1] Ён быў сфармуляваны Эндзі Хантам і Дэйвам Томасам у іх кнізе The Pragmatic Programmer. Яны ўжываюць яго ў даволі шырокім сэнсе і прымяняюць да схем баз даных, планаў тэсціравання, сістэм зборкі і нават дакументацыі.[2] Пры правільнай рэалізацыя прынцыпу DRY, мадыфікацыя любога асобнага элемента сістэмы не патрабуе змены іншых лагічна не звязаных паміж сабой элементаў. Пры гэтым усе элементы, якія лагічна звязаны, змяняюцца прадказальна і аднастайна і, такім чынам, застаюцца сінхранізаванымі. Каб прынцып DRY выконваўся на ўсіх узроўнях сістэмы, Томас і Хант, акрамя метадаў і функцый у кодзе, таксама выкарыстоўваюць генератары кода, сістэмы аўтаматычнай зборкі і мовы сцэнарыяў.
Прынцып DRY, вядомы таксама як Single Source of Truth (бел.: Адзіная крыніца праўды), пераважае ў сістэмах з кіруемай мадэлямі архітэктурай, у якіх артэфакты праграмы здабываюцца з галоўнай мадэлі аб'екта і выяўляюцца ў такой форме, як UML. Код, напісаны па прынцыпу DRY, ствараецца з дапамогай канвертацыі даных і генератараў кода, якія дазваляюць распрацоўшчыкам ПЗ пазбегнуць аперацый выразання, капіравання і ўстаўкі. Звычайна код, напісаны па гэтаму прынцыпу, дазваляе лягчэй кіраваць вялікімі інфармацыйнымі сістэмамі. Такія інструменты, як XDoclet і XSLT з'яўляюцца прыкладамі тэхнік праграмавання DRY. Прыкладамі сістэм, якія патрабуюць дубліраванні інфармацыі, з'яўляецца Enterprise Java Beans версіі 2, якая патрабуе не толькі дубліравання ў кодзе Java, але і ў файлах канфігурацыі.
Прыкладамі сістэм, у якіх зроблена спроба ліквідаваць дубліраванне інфармацыі, з'яўляюцца фрэймворкі Symfony, web2py, Yii, Django, Ruby on Rails[3][4], Phalcon, а таксама асяроддзі распрацоўкі Visual Studio LightSwitch і Enterprise Java Beans версіі 3.
Парушэнні прынцыпу DRY называюць WET — «Write Everything Twice» (бел.: Пішы ўсё па два разы) ці «We enjoy typing» (бел.: Нам падабаецца друкаваць). Гэта гульня англійскіх слоў «dry» (бел.: сухі) і «wet» (бел.: вільготны)[5].