Вопрос слишком общий, чтобы на самом деле сказать, но в качестве упражнения:
Предположим, вы абстрагируете его.Подумайте о том, каковы вероятные причины желания изменить результирующую 5-строчную функцию.Вероятно, вы захотите внести изменения, применимые ко всем пользователям, или вам придется написать новую функцию, немного отличающуюся от старой, каждый раз, когда у какого-то вызывающего абонента появляется причина для изменения?
Если выхотел бы изменить его для всех пользователей, это жизнеспособная абстракция.Дайте ему плохое имя сейчас, вы можете подумать о лучшем позже.
Если вы собираетесь в конечном итоге разделить эту функцию на множество похожих версий по мере развития вашего кода в будущем, вероятно, это нежизнеспособная абстракция.Вы все еще могли бы написать функцию, но это скорее сохраняющая код «вспомогательная функция», чем часть вашей формальной модели проблемы.Это не очень удовлетворительно: повторение такого количества кода немного беспокоит, потому что оно предполагает, что должно быть жизнеспособной абстракцией где-то там.
Возможно 4 из 5 строкможно было бы абстрагироваться, так как они более сплоченные, и пятая строка в данный момент так и осталась с ними.Затем вы могли бы написать 2 новые функции: одна - это новая абстракция, а другая - просто помощник, который вызывает новую функцию и затем выполняет строку 5. Одна из этих функций может иметь более ожидаемый срок полезного использования, чем другая..