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