There’s a useful thread at Advogato about common mistakes that make your code difficult to maintain.