This is an old revision of the document!
This wiki is a place to collect, examine, and discuss software design knowledge in a systematic way. Currently there is a strong focus on (object-oriented) design principles (SOLID, GRASP, DRY, KISS, …). In the future other forms of experience reuse, like patterns and anti-patterns, will also be explored and interconnected with the principles.
Just like common solution schemes to recurring problems are documented using patterns, common assessment rules telling good solutions from bad ones can be described using principles. So principles are another form of experience reuse. There are dozens and maybe hundreds of such principles, some of which are examined here.
Principle languages similarly to pattern languages interconnect principles such that the consideration of one principle inevitably leads to other principles which are likely to be relevant in the same context. Currently there is one principle language described here (OOD Principle Language) and others will follow in the future.
Start exploring the wiki with the full list of principles, the OOD Principle Language or the list of (principle) collections. This wiki is organized in several namespaces. One for each kind of experience reuse (principles, patterns, anti-patterns, …) plus some organizational ones. Get an overview of the different kinds of content in the wiki page about experience reuse or the sitemap.
Contributions to the wiki are welcome. Registration is not required (but appreciated). Almost all namespaces are world-editable. It's an open wiki so you are encouraged to share your knowledge.