### Agenda * Exceptions * How to throw and catch exceptions * Working with excpetions * Alternative ways to signal an error * Good practise: * SOLID * DRY * KISS * Code refactoring * Testing * GTEST * GMOCK * How to create simple thread safe logger * Design patterns * Observer * Strategy * Visitor * Template method * Command * Builder * Factory * Decorator