One thing I've always tried to do is avoiding code that requires translation. What do I mean by that? I try to avoid code such as this:
-- Call Answer Time After Hours
when IsBusinessHours = 'False' and SLARuleID = 2
then Sum([AnswrIn30Seconds]+[AnswrIn45Seconds])
It's okay when there's just one chunk of code like this, but if there's a whole set of code like this, you're more likely to make mistakes, because you need to internally translate, "So, if it's after hours, than the IsBusinessHours must be False." This caused me a hard-to-troubleshoot bug recently.
What I'd rather read is something like this:
-- Call Answer Time After Hours
when IsAfterHours = 'True' and SLARuleID = 2
then Sum([AnswrIn30Seconds]+[AnswrIn45Seconds])
when IsAfterHours = 'True' and SLARuleID = 2
then Sum([AnswrIn30Seconds]+[AnswrIn45Seconds])
It's much easier to understand. So what I do now in these situations is to set up a field that's the opposite of the original, when it would help readability. I use something like this
,IsAfterHours =
convert(bit,Case
When IsBusinessHours = 1 Then 0
When IsBusinessHours = 0 Then 1
Else Null
End
)
No comments:
Post a Comment