2.0 KiB
2.0 KiB
#рефакторинг #методы_рефакторинга
Проблема
Программное обеспечение часто включает передачу данных в программы, которые вычисляют на их основе различную производную информацию
function base(aReading) {...}
function taxableCharge(aReading) {...}
Решение
Использовать функцию преобразования данных, которая принимает исходные данные в качестве входных и вычисляет все производные значения, помещая каждое из них в качестве поля в выходные данные
function enrichReading(argReading) {
const aReading = _.cloneDeep(argReading);
aReading.baseCharge = base(aReading);
aReading.taxableCharge = taxableCharge(aReading);
return aReading;
}
Причины рефакторинга
- Избежание дублирования логики вычислений.
Достоинства
- Данные находятся в постоянном место, где их можно найти и обновить, чтобы избежать дублирования логики
Порядок рефакторинга
- Создайте функцию преобразования, которая принимает преобразуемую запись и возвращает те же значения, что и исходные
- Выберите некоторую логику и переместите ее тело в функцию преобразования, чтобы создать новое поле в записи. Измените код клиента для обращения к новому полю
