У програмній інженерії, «Don't repeat yourself» (DRY, укр. не повторюйся) — принцип розробки програмного забезпечення, що направлений на уникнення дублювання інформації будь-якого вигляду (наприклад, програмний код чи текст інтерфейсу користувача). Принцип був сформульований Енді Хантом та Дейвом Томасом в їх книзі The Pragmatic Programmer наступним чином: «Будь-яка інформація повинна мати єдине, однозначне, авторитетне представлення в системі». На думку авторів, принцип має застосовуватися також в «схемах баз даних, тест-планах, в системах збірки, навіть в документації».[1] Правильне використання DRY дозволяє розробникам робити атомарні зміни в системі, коли модифікація одного елементу системи не вимагає модифікації сторонніх елементів. Ті ж елементи, що мають логічне відношення до модифікованого, змінюються прогнозовано та одноманітно.

Застосування DRY ред.

Модель-орієнтовані системи ред.

Також відомий в англомовних джерелах як «Single Source of Truth», цей принцип домінує в модель-орієнтованих архітектурах (model-driven architecture), в яких програмні артефакти продукуються від моделей проблемної області, які виражені, наприклад, в діаграмах UML. Подібні системи застосовують системи автоматичної генерації коду та конвертації даних з моделі, що дозволяють розробнику уникнути операцій copy-paste (англ. скопіювати-вставити) і не повторювати себе. Завдяки цьому, принцип DRY робить обслуговування великих програмних систем простішим.

Приклади ред.

Програма генерації коду XDoclet є гарним прикладом реалізації принципу DRY. Ця програма допомагає писати код для Java EE (в тому числі вебсервісів та портлетів), беручи на себе генерацію шаблонного коду.

DRY і WET ред.

Порушення принципу DRY жартома називають WET — «write everything twice» (укр. «пиши все по два рази») та «ми любимо друкувати» (англ. we enjoy typing)[2]. Це гра англійських слів «dry» (укр. «сухий») і «wet» (укр. «вологий, мокрий»). Загалом, дублювання коду може здійснюватися не тільки двічі, але й набагато більше разів, тому порушення DRY перетворюється на «write everything ten thousand times» (укр. «пиши все десять тисяч разів»).

Див. також ред.

Посилання ред.

Джерела ред.

Примітки ред.

  1. Dave Thomas, interviewed by Bill Venners (10 жовтня 2003). Orthogonality and the DRY Principle. Архів оригіналу за 29 жовтня 2012. Процитовано 1 грудня 2006.
  2. Олександр Пападімуліс (12.08.2011) 'The WET Cart' [Архівовано 2012-11-29 у Wayback Machine.] (англ.)