1.5 KiB
1.5 KiB
#рефакторинг #методы_рефакторинга
Проблема
Циклы, которые решают одновременно разные задачи только потому, что они могут сделать это за один проход цикла
let averageAge = 0;
let totalSalary = 0;
for (const p of people) {
averageAge += p.age;
totalSalary += p.salary;
}
averageAge = averageAge / people.length;
Решение
Разделение цикла может облегчить его использование
let totalSalary = 0;
for (const p of people) {
totalSalary += p.salary;
}
let averageAge = 0;
for (const p of people) {
averageAge += p.age;
}
averageAge = averageAge / people.length;
Причины рефакторинга
Разделение цикла также может облегчить его использование. Цикл, который вычисляет одно значение, может просто его вернуть. Циклы, которые решают много задач, должны возвращать структуры или заполнять локальные переменные.
Порядок рефакторинга
- Скопируйте цикл
- Определите и устраните дублирующиеся побочные действия
