Base/Knowledges/IT/Рефакторинг/Методы рефакторинга/Разделение цикла (Split Loop).md
2026-02-23 19:52:05 +03:00

1.5 KiB
Raw Blame History

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

!Pasted image 20250131092246.png

Проблема

Циклы, которые решают одновременно разные задачи только потому, что они могут сделать это за один проход цикла

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;

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

Разделение цикла также может облегчить его использование. Цикл, который вычисляет одно значение, может просто его вернуть. Циклы, которые решают много задач, должны возвращать структуры или заполнять локальные переменные.

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

  1. Скопируйте цикл
  2. Определите и устраните дублирующиеся побочные действия

Ссылки