Одним из центральных элементов хорошего программирования является идея о том, что вы не должны повторяться при написании кода (отсюда и аббревиатура DRY — Don’t Repeat Yourself). Реализация DRY в вашей программе имеет несколько важных преимуществ.

Преимущество 1 — экономит время

Наиболее очевидное преимущество отказа от повторения — экономия времени. Если у вас есть фрагмент логики, который вы используете несколько раз в своей программе, ввод его каждый раз требует времени. Кроме того, что, если вы поймете, что вам нужно настроить логику? Вам придется найти каждый экземпляр в вашей программе и изменить его по отдельности. Это приводит нас к еще более мощному преимуществу DRY, а именно к повышенной гибкости за счет создания абстракций.

Преимущество 2 — гибкий и многоразовый код

Рассмотрим приведенную ниже программу, которая представляет собой простой алгоритм, возвращающий сумму всех элементов с четными номерами в последовательности Фибоначчи при заданном пределе.

В строках 39 и 40 используется один и тот же код для поиска следующего элемента Фибоначчи. Чтобы высушить код, мы создаем то, что называется абстракцией. Это вытягивает повторяющиеся элементы в новую функцию, как показано ниже в методе next_fib.

Абстрагируя повторяющийся код, мы можем избавить себя от многих головных болей в будущем. В исходном примере выше, если бы мы хотели изменить повторяющийся код, нам нужно было бы внести изменения только в двух местах. Однако в больших программах вы можете многократно вызывать одну и ту же логическую единицу в нескольких файлах. Чтобы внести изменения, вам придется выследить каждый экземпляр и изменить каждый. Это делает вашу программу устойчивой к изменениям и легко ломаемой.

Все это можно решить, создав абстракцию. Таким образом, если вы захотите изменить логику в будущем, вы сделаете изменения только в одном месте, и обновленная логика будет использоваться везде, где вы вызываете метод. Это экономит время и позволяет вашей программе легче адаптироваться к непредвиденным обстоятельствам.