Замена и восстановление логотипа модуля на странице сайта


Исходный код

function changeLogo(imgLoc){
    document.getElementById("module_logo").src = "./site/" + imgLoc + "_logo.jpg";
}
function returnLogo(imgLoc){
    document.getElementById("module_logo").src = "./site/" + imgLoc + "_logo.jpg";
}

Что не так в этом коде

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

Что так в этом коде

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

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