good practice cargo culting over-engineering interface

Are you guilty of over-engineering?

If you listen to other language communities - such as Python or Ruby, it seems Java developers have a strong tendency of over-engineering. Perhaps they’re just jealous of our superior platform (wink), perhaps there is some very slight reason that they believe so. I do believe so. And it’s quite interesting that I realized it by doing code review - while I may be guilty of over-engineering myself when writing cod

exception management good practice quality

Throwing a NullPointerException... or not

This week, I've lived again an experience from a few years ago, but in the opposite seat. As a software architect/team leader/technical lead (select the term you're more comfortable with), I was doing code reviews on an project we were working on and  I stumbled upon a code throwing a NullPointerException: that was a big coding mistake. So I gently pointed to the developer that it was a bad idea and that I'd like him to throw an IllegalArgumentException instead, which exactly the exception type m