Refactoring

DoDo

Member³
I have few suggestions about refactoring ;) :

1. When refactoring inside procedure (not in package) refactored procedure should not use any parameters, and it should be placed after declaration of constants, types or variables, i.e. just before BEGIN of procedure.

LIKE THIS:

Create Or Replace Procedure Test Is
-- constants...
-- types...
-- cursors ...
-- var ...
v_c1 varchar2;
v_n1 number;

-- Refactored procedure rfProc1
Procedure rfProc1 Is
Begin
...
...
End rfProc1;

-- Refactored procedure rfProc2
Procedure rfProc2 Is
Begin
...
...
End rfProc2;
Begin
...
...
If v_c1 = 'YES' Or v_n1 > 0 Then
rfProc1;
Else
rfProc2;
End If;
...
Exception When
...
End test;

2. When refactoring block started with Begin and ended with End it should not insert BEGIN and END

LIKE:

THIS:
Create Or Replace Procedure test2 Is
...
Begin
...
Begin -- Start of refactored procedure
...
Exception When
...
End; -- End of refactored procedure
...
Exception When
...
End;

SHOULD BE REFACTORED LIKE THIS:
Create Or Replace Package Body test2 Is
...
Procedure rfProc(...) Is
Begin
...
...
Exception When
...
End rfProc;
Begin
...
rfProc(...); -- Refactored
...
Exception When
...
End;

NOT LIKE THIS:
Create Or Replace Package Body test2 Is
...
Procedure rfProc(...) Is
Begin
Begin -- This is needlessly
...
...
Exception When
...
End; -- This is needlessly
End rfProc;
Begin
...
rfProc(...); -- Refactored
...
Exception When
...
End;

THX in advance!

BTW is there a date for "enhancement list"?
 
Back
Top