1
22
我们真的需要重构吗 虽然(真) 循环? 有时它是一种编码标准,大多数开发人员已经习惯了这种结构。如果您必须仔细考虑如何重构此代码,您确定重构它是一个好主意吗? 古托 以前是编码标准中的败类。我见过算法 古托 使代码可读性大大提高,而且更短。有时不值得重构(或更好地使用 古托 ) 另一方面,你可以避免 虽然(真) 大部分时间。 |
2
58
我的偏好是
这最清楚地表达了意图。祝你顺利通过编码标准。(想知道这会让我付出多少代价)。 |
3
22
有什么可怕的?尝试找到一个常见的中断条件,并将其重构为循环的头部。如果不可能的话,那就好了。 |
4
13
当我遇到一个while(true)循环时,它告诉我
1和2意味着你可以坚持一段时间(对)。(我用
|
5
12
将true替换为要用于中断循环的条件。 对于服务或后台线程,可以使用:
|
6
11
为什么要重构?这个建筑有什么“可怕”的?它被广泛使用,并且被很好地理解。 如果没坏,就别修了。 |
7
7
“永远运行”的情况有时是大型状态机的一部分。许多嵌入式设备(带有“永远运行”循环)并不真正运行 永远 . 它们通常有几种操作模式,并将在这些模式之间排序。 当我们建立热泵控制器时,有一个开机自检(post)模式运行了一段时间。然后有一个初步的环境收集模式运行,直到我们弄清楚所有的区域和恒温器以及其他什么。 一些工程师声称接下来的就是“永远奔跑”的循环。其实没那么简单。实际上,是几个操作模式发生了翻转和翻滚。有暖气、除霜、制冷、空转等等。 我的偏好是将“永远”循环视为真正的一种操作模式——在未来的某个时候可能会有其他的操作模式。
在某些情况下,到目前为止我们还没有看到任何场景
|
8
7
? 嗯,别管它是什么样子,虽然(真的)可能和你要读的一样清楚。 |
9
3
呃,做一个重构……
好吧,如果你有一种支持尾调用的语言…… |
10
3
如果您希望它无限期地继续运行,直到程序流完全中止,那么while(true)没有任何问题。我最近在一个.NET数据收集服务中遇到了它,该服务将while(true)与thread.sleep结合在一起,每分钟唤醒一次,并向第三方数据服务轮询新报告。我考虑用一个计时器和一个委托来重构它,但最终决定这是最简单和最容易读取的方法。10次中有9次是清晰的代码味道,但当没有退出条件时,为什么会让事情变得更困难? |
11
1
我不介意无限循环包含在一个窗口中,并随窗口一起消失。 想想哈塞尔霍夫递归。 |
12
-2
警告:您的堆栈可能会溢出,这取决于语言、优化器和其他内容。 |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
Justin · Python自属性重命名 6 年前 |
Sabutobi · 长dict属性行的重构 6 年前 |
Falco Alexander · 简单LINQ重构/样式 6 年前 |
05bs001 · Euler 12需要优化 6 年前 |
slartidan · 如何将lambda表达式重构为方法引用? 6 年前 |
Alex · 在Java类中频繁使用与映射键相同的字符串[已关闭] 7 年前 |