Don’t repeat yourself, DRY (бел.: не паўтарайся) — гэта прынцып распрацоўкі праграмнага забеспячэння, накіраваны на скарачэнне рознага роду дубліравання, напрыклад дубліраванне праграмнага кода або дубліраванне адных і тых жа даных у розных частках сістэмы. Прынцып DRY фармулюецца як: «Кожны фрагмент ведаў павінен мець адзінае, адназначнае, аўтарытэтнае прадстаўленне ў сістэме».[1] Ён быў сфармуляваны Эндзі Хантам і Дэйвам Томасам у іх кнізе The Pragmatic Programmer. Яны ўжываюць яго ў даволі шырокім сэнсе і прымяняюць да схем баз даных, планаў тэсціравання, сістэм зборкі і нават дакументацыі.[2] Пры правільнай рэалізацыя прынцыпу DRY, мадыфікацыя любога асобнага элемента сістэмы не патрабуе змены іншых лагічна не звязаных паміж сабой элементаў. Пры гэтым усе элементы, якія лагічна звязаны, змяняюцца прадказальна і аднастайна і, такім чынам, застаюцца сінхранізаванымі. Каб прынцып 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 правіць

Парушэнні прынцыпу DRY называюць WET — «Write Everything Twice» (бел.: Пішы ўсё па два разы) ці «We enjoy typing» (бел.: Нам падабаецца друкаваць). Гэта гульня англійскіх слоў «dry» (бел.: сухі) і «wet» (бел.: вільготны)[5].

Зноскі

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