Base/Knowledges/IT/Рефакторинг/Методы рефакторинга/Объединение функций в преобразование (Combine Functions into Transform).md
2026-02-23 19:52:05 +03:00

2.0 KiB
Raw Blame History

#рефакторинг #методы_рефакторинга

!Pasted image 20241118084738.png

Проблема

Программное обеспечение часто включает передачу данных в программы, которые вычисляют на их основе различную производную информацию

function base(aReading) {...}
function taxableCharge(aReading) {...}

Решение

Использовать функцию преобразования данных, которая принимает исходные данные в качестве входных и вычисляет все производные значения, помещая каждое из них в качестве поля в выходные данные

function enrichReading(argReading) {
  const aReading = _.cloneDeep(argReading);
  aReading.baseCharge = base(aReading);
  aReading.taxableCharge = taxableCharge(aReading);
  return aReading;
}

Причины рефакторинга

  • Избежание дублирования логики вычислений.

Достоинства

  • Данные находятся в постоянном место, где их можно найти и обновить, чтобы избежать дублирования логики

Порядок рефакторинга

  1. Создайте функцию преобразования, которая принимает преобразуемую запись и возвращает те же значения, что и исходные
  2. Выберите некоторую логику и переместите ее тело в функцию преобразования, чтобы создать новое поле в записи. Измените код клиента для обращения к новому полю

Ссылки