void select(p) { a = calA(p); b = calB(p); c = calC(p); d = calD(p); if (a>0 && b < 0 && c < 100 && d > 5) { OK } else { FAIL }}
估计很多人都很乐意写这样的代码,感觉上就是逻辑清晰,计算数据,筛选数据,两个步骤很明晰。特别是在某些框架中,提供的接口还强制约束着必须这样按部就班地实现。
这个程序在执行某一个大数据量的数据逻辑处理,需要花费3天时间
将代码改为:void select(P) { d = calD(p); //d的淘汰率最高 if (d <= 5) { return; } c = calC(p); /// 淘汰率次之 if (c >= 100) { return; } a = calA(p) ; if (a <= 0) { return; } b = calB(p); if (b >=0 ) { return; } OK }改代码后,同样的数据处理,只需要十几分钟就完成了。
我相信,在你们的项目中,找一找上面那种低效率的代码,肯定不少!
[C语言]低代价优先返回原则
最新推荐文章于 2024-08-25 22:48:39 发布