Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re: Strategies for maintenance of horrible code?

by adrianh (Chancellor)
on Jul 12, 2006 at 07:49 UTC ( #560633=note: print w/replies, xml ) Need Help??

in reply to Strategies for maintenance of horrible code?

Debugging this code is a whole different game, and I'd really appreciate some input from other monks who've dealt with this type of problem.

I'd recommend reading Perl Medic and Working Effectively with Legacy Code (the latter isn't Perl specific - but is chock full of useful advice).

I would not spend any time fixing the code if it's not breaking (assuming you're not being paid to review/fix the code). However evil it may be - if it's doing it's job leave it alone.

Instead - every time you need to fix a bug or add some new functionality just test/refactor the bits of the evil code that are touched by the changes. I've found incrementally adding tests and refactoring to be much more effective than any sort of "big bang" fixing things for the sake of them approach :-)

If you are being paid to do a review/fix then Perl::Critic might give you some useful places to look.

  • Comment on Re: Strategies for maintenance of horrible code?

Replies are listed 'Best First'.
Re^2: Strategies for maintenance of horrible code?
by webfiend (Vicar) on Jul 14, 2006 at 21:24 UTC
    Definitely agree about the approach of sorting things out with gradual refactoring and tests as the need arises. The problem with the "Big Bang" approach is that you have the potential for a very long stretch of time where there are two forks of the code: ugly shipping code that will need to be fixed and refactored as bugs are reported, and pretty nonfunctioning code that will need to incorporate those fixes as they are uncovered, resulting in a perpetual loop of "it's not quite ready yet."

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://560633]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2020-10-01 16:03 GMT
Find Nodes?
    Voting Booth?
    My favourite web site is:

    Results (16 votes). Check out past polls.