I recently installed the Metrics plugin in MyEclipse at work. It provides a great big stack of code complexity statistics -- of which the most easy to understand for non-computer geeks is the McCabe Cyclomatic Code Complexity metric. This is effectively a measure of how many different paths there are through a particular piece of code.
Imagine if you lived in a big city, and had to find your way to another spot in the same city. Every place where you could make a decision of where to turn or go ahead represents complexity, in the same way that the decision points in a programming language represent complexity. Pretty obviously, the more decision points there are, the more opportunities there are to make mistakes. A cyclomatic code complexity greater than ten is supposed to be a sign that you need to refactor the code. So what happens when you see lots of code with complexity measures above 30? Oh dear.
And when I actually look at some of the functions with high code complexity measures, what do I find? The equivalent of dropping a mouse at Santa Monica Blvd. and Ocean Avenue in Santa Monica, and telling it to find its way to Boyle Heights in East Los Angeles.
There is a lifetime (perhaps several lifetimes) of work to clean up this pile.
Tidak ada komentar:
Posting Komentar