Don't repeat yourself

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

В програмній інженерії, «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» (укр. «вологий, мокрий»). Загалом, дублювання коду може здійснюватися не тільки двічі, але й набагато більше разів тому порушення WET перетворюється на «write everything ten thousand times» (укр. «пиши все десять тисяч разів»).

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

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

Джерела[ред.ред. код]

Примітки[ред.ред. код]

  1. Dave Thomas, interviewed by Bill Venners (2003-10-10). «Orthogonality and the DRY Principle». Процитовано 2006-12-01. 
  2. Олександр Пападімуліс (12.08.2011) 'The WET Cart' (англ.)