Design Patterns are a basic requirement in modern development teams, both as a means to improve software quality as well as to improve team communication.
General Design Patterns
Architectural Patterns
Distributed Computing Patterns
Use and communication of Design Patterns