Essential developer toolkit

Putting hundreds of lines of code together is one thing, but putting them right is something completely different.

If you really want to know what you are writing, put these in your toolkit:

1. Structure101

Amazing tool. Shows you architectural violations and extensive code complexity. It is so easy to break your architecture and overly complicate your classes. After every milestone I check my architecture with Structure101 and almost always I need to do refactoring after that.

2. PMD

PMD is basically using rules from “Effective Java” book by Joshua Bloch. It is useful to have your code marked immediately after making some violation then going through the book and validating if you have done it right. I don’t agree with all the rules used in PMD (like Controversial Rules for example – specifically DD anomaly) but you can switch some rules off.

3. FindBugs

Similar to PMD. Good to have as much code analyzers as possible that automatically run in background.

4. TomcatProbe

If you are writing web applications running under Tomcat this tool can be useful. It’s not super useful, but gives you some high level info about memory consumption and other stuff. Good to have, but if I would find some better and free profiler tool that can be used as easily as this one, I would be happy to use it.

I have also worked with some others tools Hammurapi, SonarJ, Profiler4J etc. but I am not very satisfied with those. Some are very hard to install (Hammurapi), some don’t work in Mac OSX (SonarJ), some are still in beta (Profiler4J) etc.

Can you suggest some other free code/architecture analyzer tool?
I would be happy to learn about your experience.