Wassup Jose Weblog nonsense at its best!

17Jun/083

Good Code, Bad Code

The refactored function (10 lines of code including the white space to be fair :P )


Public Function CallFunc(strFunctionName As String) As Boolean
On Error GoTo vbwErrHandler


CallFunc = TLI.InvokeHook(Me, strFunctionName, INVOKE_FUNC)


Exit Function
vbwErrHandler:
CallFunc = False
End Function

The old function below the fold(600 lines of code).



Public Function CallFunc(strFunctionName As String) As Boolean
'
On Error GoTo vbwErrHandler
'


'Call PopulateCodeColls


'Debug.Print strFunctionName
Dim rn As Long

strFunctionName = UCase(strFunctionName)

rn = CLng(Right(strFunctionName, 4))
If rn >= 901 Then
GoTo RN901

ElseIf rn >= 191 Then
GoTo RN191

ElseIf rn >= 181 Then
GoTo RN181

ElseIf rn >= 171 Then
GoTo RN171

ElseIf rn >= 161 Then
GoTo RN161

ElseIf rn >= 151 Then
GoTo RN151

ElseIf rn >= 141 Then
GoTo RN141

ElseIf rn >= 131 Then
GoTo RN131

ElseIf rn >= 121 Then
GoTo RN121

ElseIf rn >= 111 Then
GoTo RN111

ElseIf rn >= 101 Then
GoTo RN101

ElseIf rn >= 91 Then
GoTo RN91

ElseIf rn >= 81 Then
GoTo RN81

ElseIf rn >= 71 Then
GoTo RN71

ElseIf rn >= 61 Then
GoTo RN61

ElseIf rn >= 51 Then
GoTo RN51

ElseIf rn >= 41 Then
GoTo RN41

ElseIf rn >= 31 Then
GoTo RN31

ElseIf rn >= 21 Then
GoTo RN21

ElseIf rn >= 11 Then
GoTo RN11

End If

Select Case strFunctionName
Case "RULE0001":
CallFunc = Rule0001()
Case "RULE0002":
CallFunc = Rule0002()
Case "RULE0003":
CallFunc = Rule0003()
Case "RULE0004":
CallFunc = Rule0004()
Case "RULE0005":
CallFunc = Rule0005()
Case "RULE0006":
CallFunc = Rule0006()
Case "RULE0007":
CallFunc = Rule0007()
Case "RULE0008":
CallFunc = Rule0008()
Case "RULE0009":
CallFunc = Rule0009()
Case "RULE0010":
CallFunc = Rule0010()

End Select
Exit Function

RN11:
Select Case strFunctionName
Case "RULE0011":
CallFunc = Rule0011()
Case "RULE0012":
CallFunc = Rule0012()
Case "RULE0013":
CallFunc = Rule0013()
Case "RULE0014":
CallFunc = Rule0014()
Case "RULE0015":
CallFunc = Rule0015()
Case "RULE0016":
CallFunc = Rule0016()
Case "RULE0017":
CallFunc = Rule0017()
Case "RULE0018":
CallFunc = Rule0018()
Case "RULE0019":
CallFunc = Rule0019()
Case "RULE0020":
CallFunc = Rule0020()
End Select
Exit Function

RN21:
Select Case strFunctionName
Case "RULE0021":
CallFunc = Rule0021()
Case "RULE0022":
CallFunc = Rule0022()
Case "RULE0023":
CallFunc = Rule0023()
Case "RULE0024":
CallFunc = Rule0024()
Case "RULE0025":
CallFunc = Rule0025()
Case "RULE0026":
CallFunc = Rule0026()
Case "RULE0027":
CallFunc = Rule0027()
Case "RULE0028":
CallFunc = Rule0028()
Case "RULE0029":
CallFunc = Rule0029()
Case "RULE0030":
CallFunc = Rule0030()

End Select
Exit Function

RN31:
Select Case strFunctionName
Case "RULE0031":
CallFunc = Rule0031()
Case "RULE0032":
CallFunc = Rule0032()
Case "RULE0033":
CallFunc = Rule0033()
Case "RULE0034":
CallFunc = Rule0034()
Case "RULE0035":
CallFunc = Rule0035()
Case "RULE0036":
CallFunc = Rule0036()
Case "RULE0037":
CallFunc = Rule0037()
Case "RULE0038":
CallFunc = Rule0038()
Case "RULE0039":
CallFunc = Rule0039()
Case "RULE0040":
CallFunc = Rule0040()

End Select
Exit Function

RN41:
Select Case strFunctionName
Case "RULE0041":
CallFunc = Rule0041()
Case "RULE0042":
CallFunc = Rule0042()
Case "RULE0043":
CallFunc = Rule0043()
Case "RULE0044":
CallFunc = Rule0044()
Case "RULE0045":
CallFunc = Rule0045()
Case "RULE0046":
CallFunc = Rule0046()
Case "RULE0047":
CallFunc = Rule0047()
Case "RULE0048":
CallFunc = Rule0048()
Case "RULE0049":
CallFunc = Rule0049()
Case "RULE0050":
CallFunc = Rule0050()
End Select
Exit Function

RN51:
Select Case strFunctionName
Case "RULE0051":
CallFunc = Rule0051()
Case "RULE0052":
CallFunc = Rule0052()
Case "RULE0053":
CallFunc = Rule0053()
Case "RULE0054":
CallFunc = Rule0054()
Case "RULE0055":
CallFunc = Rule0055()
Case "RULE0056":
CallFunc = Rule0056()
Case "RULE0057":
CallFunc = Rule0057()
Case "RULE0058":
CallFunc = Rule0058()
Case "RULE0059":
CallFunc = Rule0059()
Case "RULE0060":
CallFunc = Rule0060()

End Select
Exit Function

RN61:
Select Case strFunctionName
Case "RULE0061":
CallFunc = Rule0061()
Case "RULE0062":
CallFunc = Rule0062()
Case "RULE0063":
CallFunc = Rule0063()
Case "RULE0064":
CallFunc = Rule0064()
Case "RULE0065":
CallFunc = Rule0065()
Case "RULE0066":
CallFunc = Rule0066()
Case "RULE0067":
CallFunc = Rule0067()
Case "RULE0068":
CallFunc = Rule0068()
Case "RULE0069":
CallFunc = Rule0069()
Case "RULE0070":
CallFunc = Rule0070()

End Select
Exit Function

RN71:
Select Case strFunctionName
Case "RULE0071":
CallFunc = Rule0071()
Case "RULE0072":
CallFunc = Rule0072()
Case "RULE0073":
CallFunc = Rule0073()
Case "RULE0074":
CallFunc = Rule0074()
Case "RULE0075":
CallFunc = Rule0075()
Case "RULE0077":
CallFunc = Rule0077()
Case "RULE0078":
CallFunc = Rule0078()
Case "RULE0079":
CallFunc = Rule0079()
Case "RULE0080":
CallFunc = Rule0080()

End Select
Exit Function

RN81:

Select Case strFunctionName
Case "RULE0081":
CallFunc = Rule0081()
Case "RULE0082":
CallFunc = Rule0082()
Case "RULE0083":
CallFunc = Rule0083()
Case "RULE0084":
CallFunc = Rule0084()
Case "RULE0085":
CallFunc = Rule0085()
Case "RULE0086":
CallFunc = Rule0086()
Case "RULE0087":
CallFunc = Rule0087()
Case "RULE0088":
CallFunc = Rule0088()
Case "RULE0089":
CallFunc = Rule0089()

'Oct 31, Rule 90 Deleted due to Standard Edit Revision 2.0
'Case "RULE0090":
'CallFunc = Rule0090()

End Select
Exit Function

RN91:
Select Case strFunctionName
Case "RULE0091":
CallFunc = Rule0091()
Case "RULE0092":
CallFunc = Rule0092()
Case "RULE0093":
CallFunc = Rule0093()
Case "RULE0094":
CallFunc = Rule0094()
Case "RULE0095":
CallFunc = Rule0095()
Case "RULE0096":
CallFunc = Rule0096()
Case "RULE0097":
CallFunc = Rule0097()
Case "RULE0098":
CallFunc = Rule0098()
Case "RULE0099":
CallFunc = Rule0099()
Case "RULE0100":
CallFunc = Rule0100()

End Select
Exit Function

RN101:
Select Case strFunctionName
Case "RULE0101":
CallFunc = Rule0101()
Case "RULE0102":
CallFunc = Rule0102()
Case "RULE0103":
CallFunc = Rule0103()
Case "RULE0104":
CallFunc = Rule0104()
Case "RULE0105":
CallFunc = Rule0105()
Case "RULE0106":
CallFunc = Rule0106()
Case "RULE0107":
CallFunc = Rule0107()
Case "RULE0108":
CallFunc = Rule0108()
Case "RULE0109":
CallFunc = Rule0109()
Case "RULE0110":
CallFunc = Rule0110()

End Select
Exit Function

RN111:
Select Case strFunctionName
Case "RULE0111":
CallFunc = Rule0111()
Case "RULE0112":
CallFunc = Rule0112()
Case "RULE0113":
CallFunc = Rule0113()
Case "RULE0114":
CallFunc = Rule0114()
Case "RULE0115":
CallFunc = Rule0115()
Case "RULE0116":
CallFunc = Rule0116()
Case "RULE0117":
CallFunc = Rule0117()
Case "RULE0118":
CallFunc = Rule0118()
Case "RULE0119":
CallFunc = Rule0119()
Case "RULE0120":
CallFunc = Rule0120()

End Select
Exit Function

RN121:
Select Case strFunctionName
Case "RULE0121":
CallFunc = Rule0121()
Case "RULE0122":
CallFunc = Rule0122()
Case "RULE0123":
CallFunc = Rule0123()
Case "RULE0124":
CallFunc = Rule0124()
Case "RULE0125":
CallFunc = Rule0125()
Case "RULE0126":
CallFunc = Rule0126()
Case "RULE0127":
CallFunc = Rule0127()
Case "RULE0128":
CallFunc = Rule0128()
Case "RULE0129":
CallFunc = Rule0129()
Case "RULE0130":
CallFunc = Rule0130()

End Select
Exit Function

RN131:
Select Case strFunctionName
Case "RULE0131":
CallFunc = Rule0131()
Case "RULE0132":
CallFunc = Rule0132()
Case "RULE0133":
CallFunc = Rule0133()
Case "RULE0134":
CallFunc = Rule0134()
Case "RULE0135":
CallFunc = Rule0135()
Case "RULE0136":
CallFunc = Rule0136()
Case "RULE0137":
CallFunc = Rule0137()
Case "RULE0138":
CallFunc = Rule0138()
Case "RULE0139":
CallFunc = Rule0139()
Case "RULE0140":
CallFunc = Rule0140()

End Select
Exit Function

RN141:
Select Case strFunctionName
Case "RULE0141":
CallFunc = Rule0141()
Case "RULE0142":
CallFunc = Rule0142()
Case "RULE0143":
CallFunc = Rule0143()
Case "RULE0144":
CallFunc = Rule0144()
Case "RULE0145":
CallFunc = Rule0145()
Case "RULE0146":
CallFunc = Rule0146()
Case "RULE0147":
CallFunc = Rule0147()
Case "RULE0148":
CallFunc = Rule0148()
Case "RULE0149":
CallFunc = Rule0149()
Case "RULE0150":
CallFunc = Rule0150()
End Select
Exit Function

RN151:
Select Case strFunctionName
Case "RULE0151":
CallFunc = Rule0151()
Case "RULE0152":
CallFunc = Rule0152()
Case "RULE0153":
CallFunc = Rule0153()
Case "RULE0154":
CallFunc = Rule0154()
Case "RULE0155":
CallFunc = Rule0155()
Case "RULE0156":
CallFunc = Rule0156()
Case "RULE0157":
CallFunc = Rule0157()
Case "RULE0158":
CallFunc = Rule0158()
Case "RULE0159":
CallFunc = Rule0159()
Case "RULE0160":
CallFunc = Rule0160()

End Select
Exit Function

RN161:
Select Case strFunctionName
Case "RULE0161":
CallFunc = Rule0161()
Case "RULE0162":
CallFunc = Rule0162()
Case "RULE0163":
CallFunc = Rule0163()
Case "RULE0164":
CallFunc = Rule0164()
Case "RULE0165":
CallFunc = Rule0165()
Case "RULE0166":
CallFunc = Rule0166()
Case "RULE0167":
CallFunc = Rule0167()
Case "RULE0168":
CallFunc = Rule0168()
Case "RULE0169":
CallFunc = Rule0169()
Case "RULE0170":
CallFunc = Rule0170()

End Select
Exit Function

RN171:
Select Case strFunctionName
Case "RULE0171":
CallFunc = Rule0171()
Case "RULE0172":
CallFunc = Rule0172()
Case "RULE0173":
CallFunc = Rule0173()
Case "RULE0174":
CallFunc = Rule0174()
Case "RULE0180":
CallFunc = Rule0180()
End Select
Exit Function

RN181:
Select Case strFunctionName
Case "RULE0181":
CallFunc = Rule0181()
Case "RULE0182":
CallFunc = Rule0182()
Case "RULE0183":
CallFunc = Rule0183()
Case "RULE0184":
CallFunc = Rule0184()
Case "RULE0185":
CallFunc = Rule0185()
Case "RULE0186":
CallFunc = Rule0186()
End Select
Exit Function

RN191:
Select Case strFunctionName
Case "RULE0191":
CallFunc = Rule0191()
Case "RULE0192":
CallFunc = Rule0192()
Case "RULE0193":
CallFunc = Rule0193()
Case "RULE0194":
CallFunc = Rule0194()
End Select
Exit Function
RN901:
Select Case strFunctionName
Case "RULE0901":
CallFunc = Rule0901()
Case "RULE0902":
CallFunc = Rule0902()
Case "RULE0903":
CallFunc = Rule0903()
Case "RULE0904":
CallFunc = Rule0904()
Case "RULE0905":
CallFunc = Rule0905()
Case "RULE0906":
CallFunc = Rule0906()

Case Else
CallFunc = False
End Select

'
Exit Function
' ----- Error Handler ------
vbwErrHandler:
Const VBWPROCEDURE = "CallFunc"

Select Case vbwErrorHandler(Err.Number, Err.Description, VBWPROJECT, VBWMODULE, VBWPROCEDURE, Erl)
Case vbwEnd
'End 'For Exe Files
Case vbwRetry
Resume
Case vbwIgnoreLine
Resume Next
Case vbwDebug
Stop: Resume ' press now F8 two times to return to the failing instruction
End Select
'
End Function

Filed under: Blog Leave a comment
Comments (3) Trackbacks (0)
  1. Thanks Gabe… my eyes are bleeding and they wont stop!

  2. this must be coded back in the days when anyone who took an html class and an asp programming class then calling themselves “Web Masters”

  3. A definite candidate for The Daily WTF!


Leave a comment

(required)

 

No trackbacks yet.