| 信号 | 循环体内做两件以上无关计算 |
|---|---|
| 做法 | 按职责拆环,各自命名或提炼 |
| 注意 | 超大集合先做性能评估 |
示例
示例
// 之前:一趟循环算两个无关值
for (p of people) { youngest = min(youngest, p.age); total += p.salary; }
// 之后
for (p of people) youngest = min(youngest, p.age);
for (p of people) total += p.salary;一个循环同时做多件事时拆成多个单职责循环:可读性与可提炼性提升,现代编译器与运行时常常能抵消遍历开销;数据量大时先度量再决定。
| 信号 | 循环体内做两件以上无关计算 |
|---|---|
| 做法 | 按职责拆环,各自命名或提炼 |
| 注意 | 超大集合先做性能评估 |
// 之前:一趟循环算两个无关值
for (p of people) { youngest = min(youngest, p.age); total += p.salary; }
// 之后
for (p of people) youngest = min(youngest, p.age);
for (p of people) total += p.salary;