This wiki is essentially about experience reuse. Some developers made some experience, gained some knowledge, and got expertise. Then they codified this knowledge as patterns, anti-patterns, principles and the like. This wiki collects these and describes and examines them in a structured way.
The following table shows the different forms of codified experience:
|Principles||Rules of thumb telling good solutions from bad solutions||OOD-PL, SOLID, GRASP, …||list|
|Patterns||Known good solutions||GoF, POSA1, …||list|
|Anti-Patterns||Known bad solutions||Fowler, …||list|
|Refactorings||Procedures for transforming solutions structurally (typically from bad to good)||Fowler, …||list|
|Terms||Any terms used in software development||—||list|
|Non-Principles||Rules which look like principles but are not principles in the sense discussed here.||—||list|
Currently this wiki has a strong focus on principles. In the future the wiki will extend in order to describe also the other forms and more than that: interconnect them.
- The advantages and disadvantages of (anti-)patterns can be described using principles
- Refactorings are cures for anti-patterns
- Refactorings may be used to transform a solution in a way that adheres more to a certain principle
- Refactorings may lead to certain patterns