Don't repeat yourself
У програмній інженерії, «Don't repeat yourself» (DRY, укр. не повторюйся) — принцип розробки програмного забезпечення, що направлений на уникнення дублювання інформації будь-якого вигляду (наприклад, програмний код чи текст інтерфейсу користувача). Принцип був сформульований Енді Хантом та Дейвом Томасом в їх книзі The Pragmatic Programmer наступним чином: «Будь-яка інформація повинна мати єдине, однозначне, авторитетне представлення в системі». На думку авторів, принцип має застосовуватися також в «схемах баз даних, тест-планах, в системах збірки, навіть в документації».[1] Правильне використання DRY дозволяє розробникам робити атомарні зміни в системі, коли модифікація одного елементу системи не вимагає модифікації сторонніх елементів. Ті ж елементи, що мають логічне відношення до модифікованого, змінюються прогнозовано та одноманітно.
Також відомий в англомовних джерелах як «Single Source of Truth», цей принцип домінує в модель-орієнтованих архітектурах (model-driven architecture), в яких програмні артефакти продукуються від моделей проблемної області, які виражені, наприклад, в діаграмах UML. Подібні системи застосовують системи автоматичної генерації коду та конвертації даних з моделі, що дозволяють розробнику уникнути операцій copy-paste (англ. скопіювати-вставити) і не повторювати себе. Завдяки цьому, принцип DRY робить обслуговування великих програмних систем простішим.
Програма генерації коду XDoclet є гарним прикладом реалізації принципу DRY. Ця програма допомагає писати код для Java EE (в тому числі вебсервісів та портлетів), беручи на себе генерацію шаблонного коду.
Порушення принципу DRY жартома називають WET — «write everything twice» (укр. «пиши все по два рази») та «ми любимо друкувати» (англ. we enjoy typing)[2]. Це гра англійських слів «dry» (укр. «сухий») і «wet» (укр. «вологий, мокрий»). Загалом, дублювання коду може здійснюватися не тільки двічі, але й набагато більше разів, тому порушення DRY перетворюється на «write everything ten thousand times» (укр. «пиши все десять тисяч разів»).
- Ортогональність і принцип DRY [Архівовано 29 жовтня 2012 у WebCite] (англ.)
- Don't Repeat Yourself [Архівовано 13 грудня 2010 у Wayback Machine.] (англ.)
- Ортогональність і принцип DRY [Архівовано 29 жовтня 2012 у WebCite]
- ↑ Dave Thomas, interviewed by Bill Venners (10 жовтня 2003). Orthogonality and the DRY Principle. Архів оригіналу за 29 жовтня 2012. Процитовано 1 грудня 2006.
- ↑ Олександр Пападімуліс (12.08.2011) 'The WET Cart' [Архівовано 2012-11-29 у Wayback Machine.] (англ.)