Дублирование кода


Дублирование кода — явление в программировании, при котором некоторые участки исходного кода могут встречаться более чем однажды, как внутри одной, так и в нескольких программных сущностях. Является симптомом так называемого «дурно пахнущего кода».[1] В первую очередь потому, что увеличивается его длина; именно из-за дублирования, а не из-за совпадений. Последовательность дубликатов иногда называют клонами.

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

Дублирование кода является признаком «низкого» или «ленивого» стиля программирования. Хороший стиль программирования обычно основан на повторном использовании кода. Может казаться, что использование дубликатов позволит несколько ускорить процесс создания программы, так как программисту не нужно будет задумываться над тем, как код уже используется и как он может использоваться в дальнейшем. Однако, проблема заключается в том, что написание кода — это лишь скромная часть жизненного цикла продукта, и дальнейшее сопровождение кода с дубликатами будет слишком осложнено. Проблемы, к которым приводит дублирование кода: