Workshop: Test Driven Development
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.
We will spend three days of workshop on implementing Texas Holdem Poker game to get familiar with TDD. Of cource all implementations will be done using modern C++17. If you are not familiar with this standard plase consider our TDD with modern C++ workshop.
3 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?**
100 – 250€ per person (depends on group size and workshop location)
Possible workshop locations
- Knowledge of modern C++
- 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.