通常在编程中,一个非常常见的要求是某些功能需要很多条件逻辑,但还不足以保证规则引擎。
例如,测试数字可以被x整除,但也可以是某事物的倍数,其他因素,某事物的平方根等等。正如您可以想象的那样,沿着这些线条的某些东西很容易涉及很多ifs /别人的。
虽然可以通过更现代的编程技术来减少混乱,但是如何快速地,以及在计算的时间内推导出所需的ifs / elses?
例如,在推算汽车保险预期客户的必要报价(btw规则引擎除外)的程序中,会有年龄,位置,驾驶点,这些积分的年龄等条件逻辑,等等。是否有任何心理技巧可以快速推导出冗余的条件分支?它只是简单的经验,没有特殊的心理技巧吗?这很重要,因为结对编程存在很多噪音,因此很难实际思考,甚至没有足够的时间来实现这个想法。
由于
答案 0 :(得分:3)
我建议尝试在你脑子里做这种事情就是在寻找麻烦,试图与伴侣一起做会让事情变得更糟。有时你必须坐下来思考,甚至在纸上做一些笔记。如果您不喜欢命题逻辑,请尝试decision tables。
答案 1 :(得分:1)
我会添加简单,可读,简短的方法,例如:
IsMinor(..)
IsRecordClean(..)
然后结合使用它们来创建具有有意义名称的新方法,例如:
IsMeetingPreReqs(..) //which checks several "simple" conditions
IsValidForInsurance(..)
(对不起这些例子,我在这里挣扎着英语,但你明白了。)
IMO将使您的代码更清晰,从而减少因分心而感到困惑的机会 不是精神本身,而是有点......
答案 2 :(得分: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
}