Tell! Don't ask!

This is a Constraint - not a Kata!

Constraints can be applied to any given Kata to focus on specific techniques and / or practices. They are meant as an extreme perspective so you can clearly feel the difference to what you do usually.


  • No return values
  • No side effects changing “global variables”
  • Don’t use exceptions as return values

Yeah, really… That’s the whole show. If you try this for the first time it might seem impossible or not very useful. Trust us, you will find a design that you didn’t consider before. And maybe one day in production you will remember…

In some languages you will need a mocking framework to write proper test.

Believe us: you can do it!

Image credits

Image by Rachel M. Carmena for Kata-Log. It represents a greeting of respect and gratitude made at the beginning and at the end of a kata. Please, feel free to use this image in case you want to contribute with a kata, but you don’t have another image. It’s not necessary to include this credit again.