У програмній інженерії, «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» (укр. «пиши все десять тисяч разів»).
Див. також
- Бритва Оккама
- Гносеологічний принцип Колмогорова
- Принцип YAGNI
- Принцип KISS
Посилання
- Ортогональність і принцип DRY [Архівовано 29 жовтня 2012 у WebCite] (англ.)
- Don't Repeat Yourself [Архівовано 13 грудня 2010 у Wayback Machine.] (англ.)
Джерела
- Ортогональність і принцип DRY [Архівовано 29 жовтня 2012 у WebCite]
Примітки
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.