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