Design Patterns:
- Factory method
- Mediator
- Facade
TDD Tools:
- JUnit
- Mockito
Best Practices:
- Following naming conventions
- Minimizing functions of classes
- Removing "middle man" class
- Removing unnecessary comments
- Get rid of duplicate code (as much as possible)
- Extracting methods
- Replace temp with query