Deleting code – what the inspector wasn’t told.

September 17, 2008

I like deleting unused code, it’s fun and satisfying. IntelliJ is brilliant at helping discover unused code too, with it’s code inspector.

Oddly, some developers go to great lengths to try and stop tools like this being able to identify if code is actually in use. One of the common techniques is to stick a class name into a database table – the reasoning for this tends to be ‘so we can change it dynamically’. This quite rightly induces a certain amount of fear in developers when it comes to deleting any code, as it might be in use.

A solution: Move the code in the database back into code.

By writing a script that runs a series of select statements on each of the columns and tables that contain the class names, then you can generate a java file that in turn has a static reference to each of the classes. This can then temporarily be included in your source tree, and the inspector can get on with it’s job. Lovely!

I’m sure this can be expanded to cover field/method names too with a little bit of generated casting.


Technical Debt.

September 14, 2008

I was ambling through some blogs that Google Reader suggested to me, and came across an article by Joe Ocampo on ‘How healthy is your code‘. It reminded me of something I heard mentioned on a project recently. It went something along the lines of ‘You are not properly stuck into a project until you have introduced some technical debt’.

It’s no surprise that the project is now struggling to maintain the rate of delivery that it started off with. Check out ‘Listening to test smells‘, a good way of showing there may be trouble ahead.

Another interesting outcome of a discussion on the subject can be found at Exploration Through Example, Brian Marick’s blog.