Workshop: Test Driven Development & Modern C++
Test Driven Development is methodology how to create your code. Simplifying, firstly you create unit tests, then you implement functionalities. It is the way how to write clean code.
Is TDD hard to learn? No. It is hard to forget old habits and start creating code in real TDD. That is why we reduced lectures to minimum. We don’t implement “Hello TDD” applications on this workshop. In our opinion only implementing real application helps to really understand, how to use TDD and show advantages of using this methodology.
Besides learning TDD approach, participants get knowledge about C++11/14/17 features and good practices.
To skill both topics (TDD and modern C++) we will spend four days of workshop on implementing Texas Holdem Poker game.
Are you familiar with modern C++ and you wanna only TDD workshop? Please check out our TDD Workshop offer.
4 eight-hour days*
TDD part program
- Introducing to Google Test Framework.
- The most common mistakes in implementation of unit tests.
- Introduction to TDD idea.
- When TDD works, when fails.
- KISS and YAGNI rules.
- MVC pattern – the most important pattern in our codding world.
- Dependency injection – friend of testable code
- Google Mock introduction – how to test classes with dependencies?
- Rule of 5/3/0.
- And a lot of implementation:
- loading map, loading saved game,
- game logic part,
- board model,
- game controller,
- other needed stuff.
- [optional] Code coverage – what is this, how to calculate it, do we need this?**
- [optional] Singleton – design pattern? Really?**
Modern C++ introduction topics
- Using auto keyword – do we still need types?
- Move semantic – why move does not move?
- Smart pointers – do not use delete anymore
- Scoped enums
- Braced initialization – bye bye the most vexing parse 🙂
- Override, final, noexcept, constexpr, nullptr – more keywords, really?
- Structured binding – no more first and seconds from maps!
- if constexpr – bye bye complex SFINAE constructions!
- Lambda functions
- a lot of other improvements
- [optional] References to smart pointers – let’s begin a war**
125 – 300€ per person (depends on group size and workshop location)
Possible workshop locations
- Knowledge of C++98/03
- Basics of Git or other control version system
- Having some basics of CMake is nice, but not compulsory
- Github account
- Own laptop with GCC or Clang supporting C++17 (we can provide external SSD disk with prepared environment if you want)
* Duration can be changed for your request. Workshop’s scope can be discussed and changed/extended (eg. about your company ceases) before workshop to adjust your needs.
** Order of topic is very flexible. It strongly depends on workshop participants’ decisions based of questions and progress of game implementation.
Interested? Ask for the offer!
Experience: Software Engineer & Trainer experienced mostly in building embedded applications as well as 2D and 3D games. Skilled in programming modern User Interfaces, but feels comfortable in writing end-to-end functionalities.
C++ evangelist conducting training and workshops about modern C++ and Test Driven Development. One of the authors of a Quick Turn Studio’s blog. Succeed as UI Developer in projects for Set-Up-Boxes, premium cars and ships, also as UI & Game Core Developer in commercial game project Little Vikings.
After work: implementing own turn-based strategy video game, moderator and player of the social deduction game “Mafia”, president of the housing community, Heroes III and League of Legends player.
Motto: Not modesty, but the humility.