<!-- .slide: data-background="#ccc" -->

### Agenda

* <!-- .element: class="fragment fade-in" --> Exceptions
    * <!-- .element: class="fragment fade-in" --> How to throw and catch exceptions
    * <!-- .element: class="fragment fade-in" --> Working with excpetions
    * <!-- .element: class="fragment fade-in" --> Alternative ways to signal an error
* <!-- .element: class="fragment fade-in" --> Good practise:
    * <!-- .element: class="fragment fade-in" --> SOLID
    * <!-- .element: class="fragment fade-in" --> DRY
    * <!-- .element: class="fragment fade-in" --> KISS
* <!-- .element: class="fragment fade-in" --> Code refactoring
* <!-- .element: class="fragment fade-in" --> Testing
    * <!-- .element: class="fragment fade-in" --> GTEST
    * <!-- .element: class="fragment fade-in" --> GMOCK
* <!-- .element: class="fragment fade-in" --> How to create simple thread safe logger
* <!-- .element: class="fragment fade-in" --> Design patterns
    * <!-- .element: class="fragment fade-in" --> Observer
    * <!-- .element: class="fragment fade-in" --> Strategy
    * <!-- .element: class="fragment fade-in" --> Visitor
    * <!-- .element: class="fragment fade-in" --> Template method
    * <!-- .element: class="fragment fade-in" --> Command
    * <!-- .element: class="fragment fade-in" --> Builder
    * <!-- .element: class="fragment fade-in" --> Factory
    * <!-- .element: class="fragment fade-in" --> Decorator

<!-- .slide: style="font-size: 0.82em" -->
