Tips for maintainable Java code

There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies. -- C.A.R. Hoare

Here's a random collection of personal observations (some well established to the point of cliché, some deliberately controversial and tongue in cheek) on things to watch out for while designing and implementing large scale object oriented applications. While much is applicable to other languages such as C++, these days I'm only interested in Java, so that's what the examples refer to.

General

Documentation

Java language

Modularity

Just in time development and over-complexity

Objects and classes

Style

Pulling it all together

Or not:

By far the biggest cost in any project is fixing and maintaining the code, not developing it in the first place. So:


Copyright © Rolf Howarth (March 2001)