是否有任何心理技巧可以快速推导出具有大量条件逻辑的程序中所需的ifs / elses?

时间:2010-10-01 20:27:36

标签: conditional pair-programming

通常在编程中,一个非常常见的要求是某些功能需要很多条件逻辑,但还不足以保证规则引擎。

例如,测试数字可以被x整除,但也可以是某事物的倍数,其他因素,某事物的平方根等等。正如您可以想象的那样,沿着这些线条的某些东西很容易涉及很多ifs /别人的。

虽然可以通过更现代的编程技术来减少混乱,但是如何快速地,以及在计算的时间内推导出所需的ifs / elses?

例如,在推算汽车保险预期客户的必要报价(btw规则引擎除外)的程序中,会有年龄,位置,驾驶点,这些积分的年龄等条件逻辑,等等。是否有任何心理技巧可以快速推导出冗余的条件分支?它只是简单的经验,没有特殊的心理技巧吗?这很重要,因为结对编程存在很多噪音,因此很难实际思考,甚至​​没有足够的时间来实现这个想法。

由于

3 个答案:

答案 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
}