Правило трьох (інформатика)
Правило трьох є емпіричним правилом рефакторингу, яке вказує коли код, що дублюється, слід замінити на підпрограму. Відповідно до правила, код може мати копію, але коли той самий код використовується тричі, він повинен бути перенесений в окрему процедуру. Це правило було введене Мартіном Фаулером[1] і приписується Дону Робертсу.
Дублювання в програмуванні є поганою практикою, тому що це робить код негнучким. Однак, рефакторинг коду для виключення дублювання займає багато часу, який може бути витрачений на інші завдання. Але коли код повторюється тричі, і його потрібно змінити, його доведеться змінювати у всіх місцях. Цей процес вразливий до помилок і часто призводить до проблем. Якщо код існує тільки в одному місці, то він може бути легко змінений лише в цьому місці. Правило припускає, що ціна підтримки, безумовно, перевищує ціну рефакторингу, коли є три копії коду, і можливо перевищує (або ні), якщо є дві копії.
Це правило, зазвичай, застосовується тільки до невеликого числа рядків коду або навіть окремих рядків коду. Наприклад, якщо програма викликає функцію, а потім викликає її знову, коли сталася помилка при першому виклику, то мати два місця виклику функції є прийнятним. Однак, якщо функцію потрібно викликати п'ять разів, перш ніж згенерувати помилку, то в такому випадку всі виклики повинні бути замінені на цикл з тілом, яке містить один виклик.
Примітки
- Martin Fowler; Kent Beck; John Brant; William Opdyke; Don Roberts (1999). Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional. ISBN 978-0201485677.