Note: this page is no longer maintained.
Creating good (OO) software - i.e. software that is sufficiently flexible and maintainable - is not easy. Getting there typically requires mulitple iterations and continuous organization.
This is an initial list on resources around this topic. They mostly are meta-pointers. More details will be added soon. Send me email if you have comments or suggestions.
Principles are fairly abstract rules that can be applied on several granularities of modelling.
Heuristics are rules of thumb that you can apply when making designs. They typically are do's and don'ts coded by experienced designers.
Bad smells indicate parts of your code that may have to be reorganized or refactored. They are similar to heuristics (the don'ts).
Patterns are (generic) solutions to recurring problems. More info on my patterns page.
Repeated reviewing is one the key activities in making good software. Whether you do it with directly (e.g. by using the pair programming practice) from the eXtremeProgramming approach, or in separate review steps.
Refactoring is a systematic approach to improving your software by making small (or larger composite) changes that don't affect the program's functionality.
Last modifed: 12/06/03