0

通常在编程中,某些功能需要大量条件逻辑是非常常见的要求,但不足以保证规则引擎的使用。

例如,测试一个数字可以被 x 整除,也可以是某事物的倍数、某事物的因数、某事物的平方根等。正如您可以想象的那样,沿着这些思路的事物很容易涉及很多 ifs/else。

虽然可以使用更现代的编程技术来减少混乱,但您如何快速并以计算方式推断出所需的 ifs/else?

例如,在一个为汽车保险潜在客户推导必要报价的程序中(顺便说一句,规则引擎除外),将有年龄、位置、驾驶点、收集这些点的年龄等条件逻辑。有没有快速推导出冗余条件分支的心理技巧?只是简单的经验,没有特殊的心理技巧吗?这很重要,因为结对编程有很多噪音,因此很难真正思考某些事情,甚至很难有足够的时间来实现这个想法。

谢谢

4

3 回答 3

3

我建议在你的脑海中尝试做这种事情是自找麻烦,而尝试与合作伙伴一起做会使事情变得更糟。有时你必须坐下来思考,甚至​​在纸上做一些笔记。如果您不喜欢命题逻辑,请尝试决策表

于 2010-10-01T21:02:50.030 回答
1

我会添加简单、易读、简短的方法,例如:

IsMinor(..)  
IsRecordClean(..)

然后结合使用它们来创建具有有意义名称的新方法,例如:

IsMeetingPreReqs(..)   //which checks several "simple" conditions
IsValidForInsurance(..)   

(对不起这些例子,我在这里用我的英语挣扎,但你明白了..)

IMO 将使您的代码更加清晰,从而减少因分心而感到困惑的机会。
不是精神上的,但有点..

于 2010-10-01T21:04:07.583 回答
0

我会说你应该使用命题逻辑。建议: q = 年龄大于 18
p = 位置在 10 英里内
r = 驾驶积分小于 3
s = 收集积分时年龄小于 18

你可以说...
(^ is AND)
if (q ^ p ^ r ^ s) {
//you are eligible or something!
} else {
//get outta here
}

于 2010-10-01T20:34:38.227 回答